OpenFeign超時(shí)時(shí)間設(shè)置不生效問(wèn)題排查記錄
OpenFeign超時(shí)時(shí)間設(shè)置不生效問(wèn)題排查
最近升級(jí)springboot 3,突然發(fā)現(xiàn)配置文件中的openFeign的超時(shí)時(shí)間設(shè)置不生效了
之前配置
如下:
feign: client: config: default: connectTimeout: 3000 readTimeout: 5000
查資料都是說(shuō)ribbon或者h(yuǎn)ystrix的超時(shí)時(shí)間設(shè)置問(wèn)題,但實(shí)際并不是,沒辦法,去看源碼,在FeignClientFactoryBean這個(gè)類里的
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這里讀的
完后進(jìn)入這個(gè)類,發(fā)現(xiàn)注解
@ConfigurationProperties("spring.cloud.openfeign.client")
對(duì)比之前的版本,這個(gè)類的注解為
@ConfigurationProperties("feign.client")
所以問(wèn)題很明顯了,將配置改為
spring: cloud: openfeign: client: config: default: connectTimeout: 3000 readTimeout: 5000
問(wèn)題解決
多說(shuō)兩句,其實(shí)除了看源碼,直接看官網(wǎng)可能更直接一點(diǎn)
https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/#timeout-handling
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?properties?和?yml?的區(qū)別解析
properties和yml都是Spring?Boot支持的兩種配置文件,它們可以看做Spring?Boot在不同時(shí)期的兩種“產(chǎn)品”,這篇文章主要介紹了Java?properties?和?yml?的區(qū)別,需要的朋友可以參考下2023-02-02Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(54)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-08-08SpringBoot2.x配置多數(shù)據(jù)源方式
這篇文章主要介紹了SpringBoot2.x配置多數(shù)據(jù)源方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03SpringBoot對(duì)Druid配置SQL監(jiān)控功能失效問(wèn)題及解決方法
這篇文章主要介紹了SpringBoot對(duì)Druid配置SQL監(jiān)控功能失效問(wèn)題的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Springboot獲取前端反饋信息并存入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Springboot獲取前端反饋信息并存入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Springboot整合easyexcel實(shí)現(xiàn)一個(gè)接口任意表的Excel導(dǎo)入導(dǎo)出
本文主要介紹了Springboot整合easyexcel實(shí)現(xiàn)一個(gè)接口任意表的Excel導(dǎo)入導(dǎo)出,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02