OpenFeign超时时间设置不生效问题排查记录

 更新时间:2024年11月15日 09:02:31   作者:gesanri  
文章主要讲述了在升级Spring Boot 3后,发现配置文件中的OpenFeign超时时间设置不生效的问题,通过查看FeignClientFactoryBean类和FeignClientProperties类的源码,发现配置读取的方式发生了变化,从而导致超时时间设置不生效

OpenFeign超时时间设置不生效问题排查

最近升级springboot 3,突然发现配置文件中的openFeign的超时时间设置不生效了

之前配置

如下:

feign:
  client:
    config:
      default:
        connectTimeout: 3000
        readTimeout: 5000

查资料都是说ribbon或者hystrix的超时时间设置问题,但实际并不是,没办法,去看源码,在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这里读的

完后进入这个类,发现注解

@ConfigurationProperties("spring.cloud.openfeign.client")

对比之前的版本,这个类的注解为

@ConfigurationProperties("feign.client")

所以问题很明显了,将配置改为

spring:
  cloud:
    openfeign:
      client:
        config:
          default:
            connectTimeout: 3000
            readTimeout: 5000

问题解决

多说两句,其实除了看源码,直接看官网可能更直接一点

https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/#timeout-handling

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java properties 和 yml 的区别解析

    Java properties 和 yml 的区别解析

    properties和yml都是Spring Boot支持的两种配置文件,它们可以看做Spring Boot在不同时期的两种“产品”,这篇文章主要介绍了Java properties 和 yml 的区别,需要的朋友可以参考下
    2023-02-02
  • Java日常练习题,每天进步一点点(54)

    Java日常练习题,每天进步一点点(54)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08
  • 浅析Java中Split函数的用法技巧

    浅析Java中Split函数的用法技巧

    在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。以下我就为大家介绍,需要的朋友可以参考下
    2013-07-07
  • Java Date类的使用方式(日期处理)

    Java Date类的使用方式(日期处理)

    本文介绍了Java中的Date类和Calendar类的使用,详细讲解了Date类的构造方法和常用方法,并通过一个实例演示了如何使用Date类来比较两个时间点之间的关系
    2024-11-11
  • SpringBoot2.x配置多数据源方式

    SpringBoot2.x配置多数据源方式

    这篇文章主要介绍了SpringBoot2.x配置多数据源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • SpringBoot对Druid配置SQL监控功能失效问题及解决方法

    SpringBoot对Druid配置SQL监控功能失效问题及解决方法

    这篇文章主要介绍了SpringBoot对Druid配置SQL监控功能失效问题的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • 基于MapReduce实现决策树算法

    基于MapReduce实现决策树算法

    这篇文章主要为大家详细介绍了基于MapReduce实现决策树算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Intellij IDEA如何修改配置文件位置

    Intellij IDEA如何修改配置文件位置

    这篇文章主要介绍了Intellij IDEA--修改配置文件位置,文章末尾给大家介绍了Intellij IDEA--宏的用法记录操作过程,对此文感兴趣的朋友跟随小编一起看看吧
    2022-08-08
  • Springboot获取前端反馈信息并存入数据库的实现代码

    Springboot获取前端反馈信息并存入数据库的实现代码

    这篇文章主要介绍了Springboot获取前端反馈信息并存入数据库的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Springboot整合easyexcel实现一个接口任意表的Excel导入导出

    Springboot整合easyexcel实现一个接口任意表的Excel导入导出

    本文主要介绍了Springboot整合easyexcel实现一个接口任意表的Excel导入导出,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02

最新评论