SpringCloud學習筆記(3)——Hystrix

不要亂摸發表於2017-12-05

參考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的方式更方便一點兒

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

 

相關文章