微服務開發架構——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/

相關文章
相關標籤/搜索