个人GitHub地址:https://github.com/leebingbin/
在使用Spring Cloud的过程中,难免会遇到一些问题。所以对Spring Cloud的常用问题做一些总结。
关于“Eureka常见问题”可以参考,我之前的文章《微服务开发架构——Spring Cloud常见问题与总结<一>Eureka常见问题》:https://my.oschina.net/u/3375733/blog/1555725
二、Hystrix/Feign 整合Hystrix后首次请求失败
在某些场景下,Feign 或 Ribbon 整合 Hystrix 后,会出现首次调用失败的问题。
2.1 原因分析
Hystrix 默认的超时时间是1秒,如果在1秒内得不到响应,就会进入 fallback 逻辑。由于 Spring 的懒加载机制,首次请求往往会比较慢,因此在某些机器(特别是配置低的机子[Tips:为什么还要用旧瓶装新酒呢?软件都更新了,硬件也要跟上啊!^_^])上,首次请求需要的时间可能就会大于1秒。
2.2 解决方案
有很多方式解决该问题:
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 支持。但该方式比较极端,一般不建议使用。
本文为博主原创文章,转载请注明出处!
https://my.oschina.net/u/3375733/blog/
来源:oschina
链接:https://my.oschina.net/u/3375733/blog/1558095