springcloud 超時和請求重試配置

主要涉及springcloud的兩個核心組件:熔斷器(hystrix)、負載均衡(ribbon)

#####熔斷器配置開始
#併發執行的最大線程數,默認10
hystrix.threadpool.default.coreSize=500
#BlockingQueue的最大隊列數
hystrix.threadpool.default.maxQueueSize=1000
#把超時發生異常屬性關閉(即無限期等待下級服務的響應,注:去掉熔斷器的影響之後,如果被調用的微服務執行很慢,依然會報錯:dealPostRequest failed and no fallback available,這是因爲ribbon負載均衡機制導致的,要徹底避免這個問題,還需要配置ribbon,因爲下級服務慢就導致了本級服務也慢)
hystrix.command.default.execution.timeout.enabled=false
#或者增大時間限制
#hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=60000000
####熔斷器配置結束

####負載均衡配置開始
#ribbon請求連接的超時時間- 限制2秒內必須請求到下游服務,並不限制下游服務處理的返回時間
ribbon.ConnectTimeout=2000 #互聯網應用建議設置成1秒,即1000
#請求處理的超時時間,即下級服務響應最大時間,超出時間消費方(路由也是消費方)返回timeout
ribbon.ReadTimeout=60000000 #互聯網應用建議設置成1秒,即1000
#對下游服務當前實例的重試次數(只有ribbon的超時時間小於hystrix的超時熔斷時間時,纔會進行重試)
ribbon.MaxAutoRetries=0
#注意:
#1. 默認情況下,GET方式請求無論是連接異常還是讀取異常,都會進行重試; 
#2. 非GET方式請求,只有連接異常時,纔會進行重試;
#3. 不要啓用ribbon的重試所有操作,即OkToRetryOnAllOperations不要配置true,因爲這又涉及到了冪等性問題。
#切換被請求微服務(下游服務)實例的重試次數
ribbon.MaxAutoRetriesNextServer=1
####負載均衡配置結束
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章