微服务开发架构——Spring Cloud常见问题与总结<二>Hystrix/Feign 整合Hystrix后首次请求失败

我的GitHub地址:https://github.com/leebingbin/git

    在使用Spring Cloud的过程当中,不免会遇到一些问题。因此对Spring Cloud的经常使用问题作一些总结。github

    关于“Eureka常见问题”能够参考,我以前的文章《微服务开发架构——Spring Cloud常见问题与总结<一>Eureka常见问题》:http://www.javashuo.com/article/p-fbmbfvua-w.html架构

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

    在某些场景下,Feign 或 Ribbon 整合 Hystrix 后,会出现首次调用失败的问题。微服务

2.1 缘由分析

    Hystrix 默认的超时时间是1秒,若是在1秒内得不到响应,就会进入 fallback 逻辑。因为 Spring 的懒加载机制,首次请求每每会比较慢,所以在某些机器(特别是配置低的机子[Tips:为何还要用旧瓶装新酒呢?软件都更新了,硬件也要跟上啊!^_^])上,首次请求须要的时间可能就会大于1秒。spa

2.2 解决方案

    有不少方式解决该问题:.net

    1) 方法一:延长 Hystrix 的超时时间,示例以下code

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:5000

    该配置让 Hystrix 的超时时间改成5秒。xml

    2) 方法二:禁用 Hystrix 的超时,示例以下blog

hystrix.command.default.execution.timeout.enabled: false

    3) 方法三:对于 Feign , 还能够为 Feign 禁用 Hystrix , 示例以下ip

feign.hystrix.enabled: false

    这样便可为 Feign 全局禁用 Hystrix 支持。但该方式比较极端,通常不建议使用。

 

 

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

相关文章
相关标签/搜索