欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SpringCloud中Feign與Hystrix整合的示例分析

這篇文章給大家分享的是有關(guān)Spring Cloud中Feign與Hystrix整合的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供廣靈企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為廣靈眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

Feign與Hystrix整合

        Feign對Hystrix提供了支持,為“服務(wù)調(diào)用者”加入以下Feign依賴:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

        在application.yml中打開Feign的Hystrix開關(guān),請見以下配置:

feign:
  hystrix:
    enabled: true

        在應(yīng)用啟動類里面,加入開Feign的開關(guān),本小節(jié)的“服務(wù)調(diào)用者”應(yīng)用啟動類,所使用的注解如下:

@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
@ServletComponentScan
@EnableFeignClients

        新建Feign接口,調(diào)用“服務(wù)提供者(spring-hystrix-provider)”的“/hello”服務(wù),請見代碼清單6-24。

        代碼清單6-24:

        codes\06\6.4\spring-hystrix-invoker\src\main\java\org\crazyit\cloud\feign\HelloClient.java

@FeignClient(name = "spring-hystrix-provider", fallback = HelloClientFallback.class)
public interface HelloClient {

    @RequestMapping(method = RequestMethod.GET, value = "/hello")
    public String hello();

    @Component
    static class HelloClientFallback implements HelloClient {

        public String hello() {
            System.out.println("hello 方法的回退");
            return "error hello";
        }
    }
}

        與普通的Feign客戶端無異,僅僅設(shè)置了處理回退的類,回退類實(shí)現(xiàn)了客戶端接口。為了能測試效果,修改服務(wù)器端的“/hello”服務(wù),讓其有800毫秒的延時(shí)。根據(jù)前面章節(jié)可知,默認(rèn)情況下,Hystrix的超時(shí)時(shí)間為1秒,因此,還需要修改配置超時(shí)配置。代碼清單6-25,在application.yml中修改命令配置。

        代碼清單6-25:codes\06\6.4\spring-hystrix-invoker\src\main\resources\application.yml

hystrix:
  command:
    HelloClient#hello():
      execution:
        isolation:
          thread: 
            timeoutInMilliseconds: 500
      circuitBreaker:
        requestVolumeThreshold: 3

        注意,如果是針對全局配置,則使用與下面類似的配置片斷:

hystrix.command.default.circuitBreaker.requestVolumeThreshold // 默認(rèn)時(shí)間段內(nèi)發(fā)生的請求數(shù)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds // 超時(shí)時(shí)間

        如果針對某個(gè)客戶端,如使用下面的配置片斷:

hystrix.command.CommandKey.circuitBreaker.requestVolumeThreshold

        Feign與Hystrix整合使用時(shí),會自動幫我們生成CommandKey,格式為:“Feign客戶端接口名#方法名()”。例如本例中的客戶端為HelloClient,方法為hello,生成的CommandKey為“HelloClient#hello()”。而默認(rèn)情況下,生成的GroupKey為@FeignClient注解的name屬性。

        以上的配置中,我們針對了hello方法,設(shè)置了超時(shí)時(shí)間為500毫秒,而“/hello”服務(wù)超時(shí)時(shí)間為800毫秒,換言之,hello方法總會超時(shí)。另外,如果請求超過3次并且失敗率超過50%,斷路器將被打開。編寫控制器,調(diào)用hello服務(wù),并查看斷路器的情況,請見代碼清單6-26。

        代碼清單6-26:HelloController.java

@RestController
public class HelloController {

    @Autowired
    HelloClient helloClient;

    @RequestMapping(value = "/feign/hello", method = RequestMethod.GET)
    public String feignHello() {
        // hello方法會超時(shí)
        String helloResult = helloClient.hello();
        // 獲取斷路器
        HystrixCircuitBreaker breaker = HystrixCircuitBreaker.Factory
                .getInstance(HystrixCommandKey.Factory
                        .asKey("HelloClient#hello()"));        
        System.out.println("斷路器狀態(tài):" + breaker.isOpen());
        return helloResult;
    }
}

        控制器的方法中,獲取了hello方法的斷路器,并輸出其狀態(tài)。接下來,編寫一個(gè)測試客戶端,多線程訪問:http://localhost:9000/feign/hello/{index},也就是控制器的feignHello方法,客戶端請見代碼清單6-27。

        代碼清單6-27:

        06\6.4\spring-hystrix-invoker\src\main\java\org\crazyit\cloud\feign\TestFeignClient.java

public class TestFeignClient {
    
    public static void main(String[] args) throws Exception {
        // 創(chuàng)建默認(rèn)的HttpClient
        final CloseableHttpClient httpclient = HttpClients.createDefault();        
        // 調(diào)用多次服務(wù)并輸出結(jié)果
        for(int i = 0; i < 6; i++) {
            // 建立線程訪問接口
            Thread t = new Thread() {
                public void run() {
                    try {
                        String url = "http://localhost:9000/feign/hello";
                        // 調(diào)用 GET 方法請求服務(wù)
                        HttpGet httpget = new HttpGet(url);
                        // 獲取響應(yīng)
                        HttpResponse response = httpclient.execute(httpget);
                        // 根據(jù) 響應(yīng)解析出字符串
                        System.out.println(EntityUtils.toString(response.getEntity()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            };
            t.start();
        }
        // 等待完成
        Thread.sleep(15000);
    }
}

        完成后,依次啟動Eureka服務(wù)器、服務(wù)提供者、服務(wù)調(diào)用者,運(yùn)行代碼清單6-27,可看到“服務(wù)計(jì)用者”的控制臺輸出如下:

斷路器狀態(tài):false
斷路器狀態(tài):false
斷路器狀態(tài):false
斷路器狀態(tài):false
斷路器狀態(tài):true
斷路器狀態(tài):true

        根據(jù)輸出可知,斷路器已經(jīng)被打開。

感謝各位的閱讀!關(guān)于“Spring Cloud中Feign與Hystrix整合的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

本文標(biāo)題:SpringCloud中Feign與Hystrix整合的示例分析
轉(zhuǎn)載來源:http://aaarwkj.com/article26/jegpjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站建設(shè)、微信小程序、網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
欧美成人黄色免费在线网站| 偷怕自拍在线免费观看| 日韩av中文一区二区| 欧美一级免费黄片在线播放| 色哟哟网站之中文字幕| 亚洲一区二区三区香蕉不卡| 尤物在线观看精品视频| 成人午夜激情在线观看| 男人天堂手机视频在线| 国产黄色大片在线关看| 欧美日韩精品视频专区| 亚洲av成人三区国产精品| 亚洲伊人久久一区二区| 亚洲国产精品午夜福利在线播放| 欧美日本一道本一区二区三区| 精品传媒国产在线观看| 18末年禁止观看免费软件| 亚洲欧洲日本一区精品| 欧美日韩久久亚洲精品| 久久精品国产亚洲av高清一区| 黄片超刺激在线看在线| 欧美日韩免费一区二三区| 92午夜福利在线视频| 久久久久亚洲av成人网人| 人妖系列中文字幕欧美系列| 国产一区av麻豆免费观看 | 国产精品一区二区三区日本| 国产夫妻自拍在线视频| 人妻少妇被猛烈进入久久精品 | 日韩精品电影一二三| 国产精品岛国片在线观看| 欧美一区二区男人天堂| 日本免费一区二区三区的电影啊 | 亚州精品少妇久久久久久| 国产a天堂一区二区专区| 国产精品亚洲伦理在线| 中文字幕高清一区二区三区| 日本亚洲精品在线观看| 精品国产一区二区三级四区| 中文字幕乱码亚洲2019| 国产成人综合久久三区北岛玲|