SpringCloud學習筆記(3)——Hystrix


參考Spring Cloud官方文檔第13、14、15章

13. Circuit Breaker: Hystrix Clients

Netflix提供了一個叫Hystrix的類庫,它實現了斷路器模式。在微服務架構中,通常一個微服務會調用多個其他的微服務。一個相對低層級的服務失敗可能造成上層應用的級聯失敗,服務訪問量越大失敗率越高。當斷路打開的時候,這個調用就被終止了。打開的斷路可以阻止級聯失敗。

13.1 How to Include Hystrix


15.1 How to Include Hystrix Dashboard

為了使用Hystrix儀表盤,需要在Spring Boot main class上用@EnableHystrixDashboard注解標注。

 

上代碼

在原先的ribbon-demo基礎上修改

以上是在Ribbon中使用Hystrix,而Feign默認就支持Hystrix。下面看一下在Feign中如何使用Hystrix。

17.4 Feign Hystrix Support

如果Hystrix在classpath中,並且feign.hystrix.enabled=true的話,那么Feign將用斷路器包裝所有的方法。

注意:在Spring Cloud Dalston之前的版本中,如果classpath中有Hystrix,那么Feign默認回為所有的方法加上斷路器。這種默認的行為在Spring Cloud Dalston版本中被改變了,取而代之的是可選的。

17.5 Feign Hystrix Fallbacks

Hystrix支持回調,當斷路器打開的時候回回調默認的代碼。為了回調指定的方法,可以在@FeignClient中設置fallback屬性,它的值是類的名字。例如:

 

 如果需要獲得回調觸發的原因,可以使用@FeignClient的fallbackFactory屬性。

上代碼

基於先前的feigen-demo工程改造

 

其它的不變

個人感覺還是用@EnableCircuitBreaker+@HystrixCommand的方式更方便一點兒

 至於斷路器儀表盤還是跟前面一樣配置

 


免責聲明!

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



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