<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 注意 Hystrix默認的服務降級時長是1秒鐘.因為網絡波動,這個值在正式環境中需要調整一下. ## 導入包 ~~~ <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> <version>2.0.1.RELEASE</version> </dependency> ~~~ ## 啟動類 ~~~ package com.like; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; //@SpringBootApplication //@EnableDiscoveryClient //@EnableCircuitBreaker @SpringCloudApplication //可以使用該注解替代上面的三個注解,但是實踐中發現如果使用此注解會導致服務不能降級 public class ConsumerServer { public static void main(String[] args) { SpringApplication.run(ConsumerServer.class); } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } } ~~~ ## 服務提供者修改 ~~~ @GetMapping("/{id}") public User index(@PathVariable("id") Long id) { try { Thread.sleep(2000L); //讓程序等待2秒 } catch (InterruptedException e) { e.printStackTrace(); } return userServer.queryById(id); } ~~~ ## 指定服務降級處理邏輯 注意,參數和返回值必須和請求的方法一致. ~~~ @GetMapping("/{id}") @HystrixCommand(fallbackMethod = "fallCallback") public String index(@PathVariable("id") Long id) { String url = "http://user-server/user/"; return restTemplate.getForObject(url + id, String.class); } public String fallCallback(Long id) { return "服務器壓力很大"; } ~~~ ## 測試 當請求時長超過默認的1秒后,進入失敗處理邏輯: ![](https://box.kancloud.cn/4a0774007ac06d8226ffb0c19ba46e8e_1322x664.png) ## 統一降級邏輯 為該類下所有方法統一處理服務降級,控制器上加上DefaultProperties注解并指定降級處理邏輯的方法: ~~~ @DefaultProperties(defaultFallback = "defaultCallBack") ~~~ ~~~ @HystrixCommand public String index(@PathVariable("id") Long id) { String url = "http://user-server/user/"; return restTemplate.getForObject(url + id, String.class); } public String defaultCallBack() //注意,這里不能寫任何參數 { return "服務器壓力很大2"; } ~~~ ## 為方法指定單獨的降級屬性 在該類下可以找到相關配置: ![](https://box.kancloud.cn/17139bdaeac2590b1cf4e874f51c95e6_2940x860.png) ![](https://box.kancloud.cn/0b6990fb661d56e861bd385cbb6ee7c6_822x910.png) ## Hystrix全局配置 需要寫到application.yml配置文件內了: 此配置沒有提示,需要自己手寫. ~~~ hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 3000 ~~~ ## 針對某個服務進行配置 ~~~ hystrix: command: user-service: //寫服務名或者方法名 execution: isolation: thread: timeoutInMilliseconds: 3000 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看