OpenFeign超時(shí)時(shí)間設(shè)置不生效問題排查記錄
OpenFeign超時(shí)時(shí)間設(shè)置不生效問題排查
最近升級(jí)springboot 3,突然發(fā)現(xiàn)配置文件中的openFeign的超時(shí)時(shí)間設(shè)置不生效了
之前配置
如下:
feign:
client:
config:
default:
connectTimeout: 3000
readTimeout: 5000查資料都是說ribbon或者h(yuǎn)ystrix的超時(shí)時(shí)間設(shè)置問題,但實(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")所以問題很明顯了,將配置改為
spring:
cloud:
openfeign:
client:
config:
default:
connectTimeout: 3000
readTimeout: 5000問題解決
多說兩句,其實(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)文章
Spring實(shí)現(xiàn)IoC的多種方式小結(jié)
本篇文章主要介紹了Spring實(shí)現(xiàn)IoC的多種方式小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)
在一個(gè)程序執(zhí)行的過程中各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的,這篇文章主要給大家介紹了關(guān)于JAVASE精密邏輯控制(分支和循環(huán)語句)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
SpringBoot集成MyBatis對(duì)管理員的查詢操作
本文主要介紹了SpringBoot集成MyBatis對(duì)管理員的查詢操作,實(shí)現(xiàn)增刪改查中的查詢操作,對(duì)所有的普通管理員進(jìn)行查詢操作,感興趣的可以了解一下2023-11-11
java網(wǎng)絡(luò)通信技術(shù)之簡單聊天小程序
這篇文章主要為大家詳細(xì)介紹了java網(wǎng)絡(luò)通信技術(shù)之簡單聊天小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Java基于ip2region.xdb數(shù)據(jù)庫從IP獲取到屬地解析的全攻略
在日常的Java開發(fā)中,IP地址相關(guān)的操作是非常常見的需求,無論是用戶行為分析、地域化服務(wù),還是安全防護(hù),都需要精準(zhǔn)地獲取和解析IP信息,本文將詳細(xì)介紹一個(gè)功能完善的Java IP工具類,需要的朋友可以參考下2026-02-02

