參考Spring Cloud官方文檔第13、14、15章 13. Circuit Breaker: Hystrix Clients Netflix提供了一個叫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的方式更方便一點兒
至於斷路器儀錶盤還是跟前面一樣配置