當feign和ribbon整合hystrix之後,可能會出現首次調用失敗的問題,出現原因分析如下: hystrix預設的超時時間是1秒,如果介面請求響應超過這個時間,將會執行fallback,spring在裝配bean的機制以及懶載入原因,feign的首次請求都會相對較慢,如果請求超過1秒,就會出現 ...
當feign和ribbon整合hystrix之後,可能會出現首次調用失敗的問題,出現原因分析如下:
hystrix預設的超時時間是1秒,如果介面請求響應超過這個時間,將會執行fallback,spring在裝配bean的機制以及懶載入原因,feign的首次請求都會相對較慢,如果請求超過1秒,就會出現請求失敗。
下麵介紹3種處理方式:
1、將hystrix的超時時間改為5秒,配置如下:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=60000
2、禁用hystrix的超時時間,配置如下:
hystrix.command.default.execution.timeout.enabled=false
3、使用feign的時候,直接關閉hystrix,不推薦這種方式:
feign.hystrix.enabled=false
針對feign首次請求失敗,可以參考:https://github.com/spring-cloud/spring-cloud-netflix/issues/768