天天看點

springboot+dubbo+zookeeper怎麼設定熔斷器并調用

由于分布式系統将不同模式做成不同的服務,在一個系統1中,可能會調用了不同服務,比如會調用服務A、B、C,

而服務跟服務之間也會互相調用的,比如服務D、E會調用服務A;

當調用服務A失敗時,系統1、服務D、服務E都會失敗了,這樣由于一個服務有問題,進而導緻多個系統或者服務不可用,産生了服務雪崩。

是以,提出一個熔斷器,快速傳回一個失敗值(而不是在阻塞等待服務的傳回,或者服務失敗抛出來的異常導緻調用者也失敗了)

使用Hystrix,可以實作熔斷器的功能:解決服務一連串的雪崩而産生。

1、在服務提供者(provider)和服務消費者(consumer)都引入jar包:

<!-- 熔斷器 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            <version>2.0.1.RELEASE</version>
        </dependency>
        <!-- 熔斷器 -->
           

2、在服務提供者和服務消費者應用上添加注解 @EnableHystrix

springboot+dubbo+zookeeper怎麼設定熔斷器并調用

3、在服務提供者去實作每一個接口的方法上添加注解 @HystrixCommand

springboot+dubbo+zookeeper怎麼設定熔斷器并調用

4、在消費者去消費每一個實作的接口上添加注解 @HystrixCommand(fallbackMethod = “heError”) 并實作熔斷方法

springboot+dubbo+zookeeper怎麼設定熔斷器并調用

值得注意的是:每一個接口方法不管是服務提供者的實作上還是消費者去消費方法上若想實作熔斷器,就必須每個方法上都加注解來實作該接口有熔斷器

繼續閱讀