Spring Cloud中,Feign和Ribbon在整合了Hystrix後,可能會出現首次調用失敗的問題
造成該問題的原因
Hystrix預設的逾時時間是1秒,如果超過這個時間尚未響應,将會進入fallback代碼。而首次請求往往會比較慢(因為Spring的懶加載機制,要執行個體化一些類),這個響應時間可能就大于1秒了
解決方案有三種,以feign為例。
方法一
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000
該配置是讓Hystrix的逾時時間改為5秒
方法二
hystrix.command.default.execution.timeout.enabled: false
該配置,用于禁用Hystrix的逾時時間
方法三
feign.hystrix.enabled: false
該配置,用于索性禁用feign的hystrix。該做法除非一些特殊場景,不推薦使用。
null