4.3 Feign使用Hystrix
由于Hystrix本身已經集成了Hystrix依賴,所以我們可以直接使用,而不用再去引入Hystrix。
-
準備工作(類似于Ribbon的操作):
①:依次啟動Eureka、Discovery、Feign服務,然后訪問Feign服務的地址,可以看到正常訪問成功。
②:關閉Discovery服務,再次訪問Feign服務的地址,這時由于無法訪問提供者的服務,F(xiàn)eign的界面會報錯:imageimage注:如果仔細觀察,會發(fā)現(xiàn)Ribbon和Feign的報錯信息略微不同:
Ribbon需要引入Hystrix依賴,并且發(fā)生斷路時,報錯為服務器拒絕鏈接;
Feign自帶Hystrix體系,發(fā)生斷路時,報錯為沒有指定斷路回調的方法屬性。
image -
使用Hystrix斷路器: 由于Feign不用引入Hystrix依賴,所以直接在原有的Feign服務商進行一些基本修改。 ①:核心類BootFeignApplication不需要改變,修改接口ComputerClient,添加注解接口中映射的fallback函數(shù):
image②:主類ComputerController不需要改變,新增實現(xiàn)類ComputerClientHystrix:
image注:實現(xiàn)類的類名和接口中的fallback函數(shù)的名稱一致。
③:依次啟動Eureka、Discovery、Feign服務,然后訪問Feign服務的地址,可以看到正常訪問成功。
關閉Discovery服務,再次訪問Feign服務地址:http://localhost:8224/add。此時會報錯:
image





