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會在下游服務故障后,調用回調類返回降級數據,可自行實現具體邏輯,這里簡單返回一個字符串。

@Component

public class DemoRemoteHystrix implements DemoRemote{

  @Override

  public String getWord() {

    return "service breakdown";

  }

}

整個過程還是比較簡單,修改很少的代碼就可以實現。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM