feign服务期间调用超时解决办法

本文介绍了解决Feign服务调用超时的方法,通过配置Ribbon饥饿加载、调整Feign超时时间及启用Hystrix熔断机制,最终解决了虚拟机环境下因CPU效率低导致的超时问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天偶然发现项目中的一个定时任务会出现服务调用超时的情况(由于是虚拟机开发环境,cpu效率比较低,调用执行时长超过1s),开始以为是feign的懒加载造成的,然后配置了饥饿加载的方式:6.9 Caching of Ribbon Configuration

feign.RetryableException: Read timed out executing POST http:****

在yml配置文件中添加:

ribbon:
  eager-load:
    enabled: true
    clients: client1, client2, client3 # 服务提供的serviceName
feign:
  client:
    config:
      default:
        connectTimeout: 3000 #单位毫秒
        readTimeout: 12000 #单位毫秒    

结果发现熔断超时了,然后又配置了hystrix:

hystrix:
  command:
    default:
      execution:
        timeout: 
          enabled: true #是否开启熔断超时
        isolation:
          thread:
            timeoutInMilliseconds: 10000 #单位毫秒

添加完以上配置超时问题解决。具体参数请根据自身业务情况配置…
附加其他超时配置,请自行调试:

# 设置ribbon超时时间
ribbon:
  ReadTimeout: 5000
  ConnectTimeout: 2000

注:feign的超时时长应根据Ribbon的超时时间和Hystrix的超时时间配置,即可理解为:
feign timeout = Ribbon timeout + Hystrix timeout

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值