<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                在消費端 cloud-comsumer-feign-hystrix-order80 進行演示。 <br/> 步驟如下: **1. 封裝Feign接口用來訪問服務端** ```java /** * fallback:指定異常處理類,PaymentHystrixService接口的某一個方法發生異常時 * 就會去調用fallback類里面對應的方法。 */ @Component @FeignClient(value = "${provider.payment.name}", fallback = PaymentHystrixServiceFallback.class) public interface PaymentHystrixService { @GetMapping("/payment/hystrix/circuit/{id}") String paymentCircuitBreaker(@PathVariable("id") Integer id); } ``` **2. 封裝異常處理類`PaymentHystrixServiceFallback`** ```java @Slf4j @Component public class PaymentHystrixServiceFallback implements PaymentHystrixService { /** * 當方法 PaymentHystrixService.paymentCircuitBreaker發生異常時就會自動調用該方法 * 做后續處理。 */ @Override public String paymentCircuitBreaker(Integer id) { String info = "paymentCircuitBreaker is exception!"; log.warn(info); return info; } } ``` **3. controller層** ```java @RestController @RequestMapping("/payment") public class PaymentController { @Resource private PaymentService paymentService; @GetMapping("/hystrix/circuit/{id}") public String paymentCircuitBreaker(@PathVariable("id") Integer id) { String res = paymentService.paymentCircuitBreaker(id); return res; } } ``` **4. 測試** (1)啟動2個Eureka注冊中心。 ``` cloud-eureka-server7001 cloud-eureka-server7002 ``` (2)啟動服務端和客戶端。 ``` cloud-provider-hystrix-payment8001 cloud-comsumer-feign-hystrix-order80 ``` (3)服務端正常,就會得到正常的響應。http://localhost/order/hystrix/circuit/10 ```json hystrix-PaymentServiceImpl-1,成功調用,流水號是:ff2a715e779e4cd68be299b1a17c9ef5 ``` (4)將服務端關閉,就會得到如下的響應。http://localhost/order/hystrix/circuit/10 ```json paymentCircuitBreaker is exception! ``` <br/> 可見,當服務端關閉后,消費端調用了方法`PaymentHystrixServiceFallback.paymentCircuitBreaker`進行異常處理。 這樣做就是告訴客戶端,這個服務暫時關閉了,請到其它服務端獲取服務,不要在我這邊等待了,避免不必要的資源浪費和擁堵。
                  <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>

                              哎呀哎呀视频在线观看