前言
在Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能會出現(xiàn)首次調(diào)用失敗的問題,要如何解決該問題呢?
造成該問題的原因
Hystrix默認的超時時間是1秒,如果超過這個時間尚未響應(yīng),將會進入fallback代碼。而首次請求往往會比較慢(因為Spring的懶加載機制,要實例化一些類),這個響應(yīng)時間可能就大于1秒了。知道原因后,我們來總結(jié)一下解決放你。
解決方案有三種,以feign為例。
方法一
1
|
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000 |
該配置是讓Hystrix的超時時間改為5秒
方法二
1
|
hystrix.command. default .execution.timeout.enabled: false |
該配置,用于禁用Hystrix的超時時間
方法三
1
|
feign.hystrix.enabled: false |
該配置,用于索性禁用feign的hystrix。該做法除非一些特殊場景,不推薦使用。
總結(jié)
以上就是關(guān)于Spring Cloud中解決Feign/Ribbon第一次請求失敗的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。
原文鏈接:http://www.itmuch.com/spring-cloud-feign-ribbon-first-request-fail/