Ribbon/Feign整合Hystrix后首次请求失败

本文总结了Feign或Ribbon整合Hystrix后首次调用失败的问题及原因,通常由Hystrix默认超时时间短于首次请求时间导致。介绍了通过调整Hystrix超时时间、禁用超时机制或直接禁用Feign的Hystrix支持等三种解决方案。
一 问题描述
在某些场景下,Feign或Ribbon整合Hystrix后,会出现首次调用失败的问题。本篇将对该问题作一些总结。
二 原因分析
Hystrix默认的超时时间是1秒,如果在1秒内得不到响应,就会进入fallback逻辑。由于Spring的懒加载机制,首次请求往往比较慢,因此在某些集群(特别是配置低的机器上),首次请求需要的时间可能就会大于1秒。
三 解决方案
1 延长Hystrix的超时时间
hystrix.command.default.execution.isolation.thread.timeoutInmilliseconds: 5000
该配置让Hystrix的超时时间改为5秒。
2 禁用Hystrix的超时
hystrix.command.default.execution.timeout.enabled: false
3 对于Feign,还可为Feign禁用Hystrix
feign.hystrix.enabled: false
这样即可为Feign全局禁用Hystrix支持。该方式比较极端,一般不建议使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值