Ribbon/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支持。该方式比较极端,一般不建议使用。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/80948721
今日推荐