日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Feign使用Hystrix无效原因及解决方法

發布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Feign使用Hystrix无效原因及解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近項目重構使用了Spring Boot和Spring Cloud。這兩者結合確實給項目帶來了方便,同時也遇到了一些問題。其中使用feign作為服務消費,但是斷路器hystrix一直不起作用讓人很費解。最終經過重重查找終于找到原因,以及解決方法。

問題產生原因

首先,使用spring-cloud搭建微服務的過程大部分是根據網上的教程來的,由于網上教程的時間較早,而spring-cloud更新迭代較快,會造成依賴上的一些問題。教程中的spring-cloud的依賴是

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Brixton.RELEASE</version><type>pom</type><scope>import</scope></dependency>

而我自己使用idea搭建項目使用的是較新的依賴

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.RELEASE</version><type>pom</type><scope>import</scope> </dependency>

發現兩者的區別了嗎?對!就是依賴版本不同。教程中的版本是?Brixton.RELEASE?而我使用的版本是Dalston.RELEASE?。

探究過程

根據這個關系順藤摸瓜找到了Netflix的依賴版本

接著,去了官網找到對應的版本,查看文檔和API

在文檔中會看到

這個意思就說feign默認是啟用hystrix的,如果要禁用的話需要加配置語句。但是種種跡象表明,feign中并沒有有啟用hystrix,看到這里當時我就很疑惑,但是發現了hystrix在feign中的開關,還是有所收獲的。我抱著試一試的心態照著上面的描述在配置文件中加上了配置,將false改為了true,結果神奇般的起了作用!

雖然問題解決了,為什么官方文檔還是有錯誤的?在這里吐槽一句:TMD(挺萌的)~~~。

抱著追根求源的心態,查看了netflix的源碼,看看什么時候修改了默認配置。點擊上圖中的API就可以看到源github上的源碼了。里面這兩段代碼,就是管理默認配置的。

為什么要默認關閉hystrix呢?請看這里:https://github.com/spring-cloud/spring-cloud-netflix/issues/1277

至此,終于知道了產生錯誤的原因,以及為什么要默認關閉hystrix。

解決方案

如果是yml文件,請在文件中加入:

feign: hystrix:enabled: true

如果是properties文件,請在文件中加入:

feign.hystrix.enabled=true

重啟服務,大功告成!

總結

以上是生活随笔為你收集整理的Feign使用Hystrix无效原因及解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。