前言
通常情況下的Hystrix是通過注解@HystrixCommand的fallbackMethod屬性實現回調的。
在Feign中,由於Feign是用借口實現的聲明式Rest,所以Hystrix的通用方法在這里就不適用於Feign了。
一、服務降級 - 通過@HystrixCommand (fallbackMethod="")
1.1 引入依賴
1.2 @HystrixCommand 引入服務熔斷時的備選方法
依然會通過hystrixGet()返回一個“格式正確”的結果,只不過結果里的data是假的,是提示用戶當前發生了錯誤。
1.3 @EnableCircuitBreaker 在主函數開啟對斷路器的支持
circuit(電路) breaker -- 斷路器
二、服務降級 - 通過@FeignClient(fallbackFactory="")
2.1 必看:Feign聲明式Http客戶端如何使用
2.2 在@FeignClient中,增加fallbackFactory
這里的Springcloud-api module是調用方,"SPRINGCLOUD-PROVIDER-DEPT"服務是被調用方。Springcloud-api需要調用"SPRINGCLOUD-PROVIDER-DEPT"服務當中的DeptClientService方法。根據OpenFeign/Feign - 聲明式Http客戶端 的要求,需要在調用端Springcloud-api聲明需要調用服務的接口,並用@FeignClient注解。
可以在@FeignClient這里,通過fallbackFactory屬性添加服務降級。
2.3 編寫FallbackFactory
需要實現FallbackFactory接口
2.4 在Feign項目配置里,開啟服務降級
要在feign的項目里配置
2.5 服務降級效果