OpenFeign超時時間設(shè)置不生效問題排查記錄
OpenFeign超時時間設(shè)置不生效問題排查
最近升級springboot 3,突然發(fā)現(xiàn)配置文件中的openFeign的超時時間設(shè)置不生效了
之前配置
如下:
feign: client: config: default: connectTimeout: 3000 readTimeout: 5000
查資料都是說ribbon或者hystrix的超時時間設(shè)置問題,但實際并不是,沒辦法,去看源碼,在FeignClientFactoryBean這個類里的
protected void configureFeign(FeignClientFactory context, Feign.Builder builder) { FeignClientProperties properties = this.beanFactory != null ? (FeignClientProperties)this.beanFactory.getBean(FeignClientProperties.class) : (FeignClientProperties)this.applicationContext.getBean(FeignClientProperties.class); FeignClientConfigurer feignClientConfigurer = (FeignClientConfigurer)this.getOptional(context, FeignClientConfigurer.class); this.setInheritParentContext(feignClientConfigurer.inheritParentConfiguration()); if (properties != null && this.inheritParentContext) { if (properties.isDefaultToProperties()) { this.configureUsingConfiguration(context, builder); this.configureUsingProperties((FeignClientProperties.FeignClientConfiguration)properties.getConfig().get(properties.getDefaultConfig()), builder); this.configureUsingProperties((FeignClientProperties.FeignClientConfiguration)properties.getConfig().get(this.contextId), builder); } else { this.configureUsingProperties((FeignClientProperties.FeignClientConfiguration)properties.getConfig().get(properties.getDefaultConfig()), builder); this.configureUsingProperties((FeignClientProperties.FeignClientConfiguration)properties.getConfig().get(this.contextId), builder); this.configureUsingConfiguration(context, builder); } } else { this.configureUsingConfiguration(context, builder); } }
可以看到配置是從FeignClientProperties這里讀的
完后進入這個類,發(fā)現(xiàn)注解
@ConfigurationProperties("spring.cloud.openfeign.client")
對比之前的版本,這個類的注解為
@ConfigurationProperties("feign.client")
所以問題很明顯了,將配置改為
spring: cloud: openfeign: client: config: default: connectTimeout: 3000 readTimeout: 5000
問題解決
多說兩句,其實除了看源碼,直接看官網(wǎng)可能更直接一點
https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/#timeout-handling
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?properties?和?yml?的區(qū)別解析
properties和yml都是Spring?Boot支持的兩種配置文件,它們可以看做Spring?Boot在不同時期的兩種“產(chǎn)品”,這篇文章主要介紹了Java?properties?和?yml?的區(qū)別,需要的朋友可以參考下2023-02-02SpringBoot2.x配置多數(shù)據(jù)源方式
這篇文章主要介紹了SpringBoot2.x配置多數(shù)據(jù)源方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03SpringBoot對Druid配置SQL監(jiān)控功能失效問題及解決方法
這篇文章主要介紹了SpringBoot對Druid配置SQL監(jiān)控功能失效問題的解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Springboot獲取前端反饋信息并存入數(shù)據(jù)庫的實現(xiàn)代碼
這篇文章主要介紹了Springboot獲取前端反饋信息并存入數(shù)據(jù)庫的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03Springboot整合easyexcel實現(xiàn)一個接口任意表的Excel導入導出
本文主要介紹了Springboot整合easyexcel實現(xiàn)一個接口任意表的Excel導入導出,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-02-02