最近項目用到springcloud,研究了下springcloud的熔斷機制Hystrix。 熔斷機制,就是下游服務出現問題後,為保證整個系統正常運行下去,而提供一種降級服務的機制,通過返回緩存數據或者既定數據,避免出現系統整體雪崩效應。在springcloud中,該功能可通過配置的方式加入到項目中 ...
最近項目用到springcloud,研究了下springcloud的熔斷機制Hystrix。
熔斷機制,就是下游服務出現問題後,為保證整個系統正常運行下去,而提供一種降級服務的機制,通過返回緩存數據或者既定數據,避免出現系統整體雪崩效應。在springcloud中,該功能可通過配置的方式加入到項目中。
理論上需要進行分散式調用的服務都應該加上,在項目中,可根據實際項目需要進行添加。
Maven項目中提供遠程調用Feign中已經依賴了Hystrix,所以在項目的pom配置上不用做任何改動。
實現步驟:
1、在需要加入熔斷的服務配置文件application.properties中增加
feign.hystrix.enabled=true
如果為application.yml,配置相應改為
feign:
hystrix:
enabled: true
2、修改遠程調用介面DemoRemote中註解@FeignClient(name="RemoteSericeProvider"),增加對應處理降級服務的類,如@FeignClient(name="RemoteSericeProvider", fallback="DemoRemoteHystrix.class")
@FeignClient(name= "RemoteSericeProvider",fallback = "DemoRemoteHystrix.class")
public interface DemoRemote{
String getWord();
}
3、在熔斷服務中創建回調類,該類實現服務中遠程調用介面DemoRemote,Hystrix會在下游服務故障後,調用回調類返回降級數據,可自行實現具體邏輯,這裡簡單返回一個字元串。