eureka_hystrix學習_1
阿新 • • 發佈:2018-11-17
目前瞭解到的熔斷機制實現方式有兩種
1.載入ribbon時實現的
a.新增相關依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
b.在Application上添加註解@EnableHystrix和@EnableHystrixDashboard
c.Service層,在我們需要進行熔斷處理的方法上新增@HystrixCommand,制定fallbackMethod來對錯誤進行處理。如:
@HystrixCommand(fallbackMethod = "hiError") public String hiService(String name){ return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class); } public String hiError(String name){ return "hi,"+name+",sorry,error!"; }
2.載入feign時實現的
a.新增依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
b.在yml配置檔案中新增feign.hystrix.enabled: true 來啟動熔斷機制
c.在Application上添加註解@EnableCircuitBreaker
d.在@FeignClient註解的屬性中新增fallback指定錯誤處理類
e.定義錯誤處理類實現@FeignClient,每個方法的錯誤處理都可以進行操作。
注意:在我看來,第二種比較適合,他將錯誤處理分離出來了