springcloud中ribbon及hystrix時間配置以及重試機制總結如下
1.增加請求時間
ribbon:
# 請求連接超時時間
ConnectTimeout: 3000
4.2.增加處理時間
ribbon:
# 處理超時時間
ReadTimeout: 600000
2.增加斷路器超時時間
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
#設置調用者等待命令執行得超時限制,超過此時間,hystrixCommand被標記未TIMEOUT,並執行回退邏輯,默認值1000 毫秒=1秒
timeoutInMilliseconds: 1800000
3.增加feign客戶端的連接和讀取時間(此時間需與處理時間同步配置)
feign:
client:
config:
default:
#此配置用於增加請求方feign客戶端的連接和讀取時間,主要應用於請求方(不包含被請求方)
connectTimeout: 700000
readTimeout: 700000
4.開啓重試
spring:
cloud:
loadbalancer:
retry:
#這個表示在響應非正常情況時,表示開啓重試機制
enable: true
5.重試次數的配置
ribbon:
# 請求連接超時時間
ConnectTimeout: 3000
# 請求處理超時時間
ReadTimeout: 600000
## 當前實例重試次數,嘗試失敗會更換下一個實例
MaxAutoRetries: 1
## 切換相同Server的次數
MaxAutoRetriesNextServer: 1
## 對get和request都進行重試,建議關閉,因爲POST請求會由於緩存了請求體,此時可能會影響服務器的資源。
OkToRetryOnAllOperations: false
eureka:
#Eureka對Ribbon服務實例的維護實現,默認爲true
enabled: true
6.熔斷器的配置
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
#設置調用者等待命令執行得超時限制,超過此時間,hystrixCommand被標記未TIMEOUT,並執行回退邏輯,默認值1000 毫秒=1秒
timeoutInMilliseconds: 1800000
#熔斷器器配置
circuitBreaker:
#是否啓用熔斷器,默認是true
enabled: true
#10秒內請求數量,默認20,如果沒有達到該數量,即使請求全部失敗,也不會觸發斷路器打開
requestVolumeThreshold: 20
# 失敗請求百分比,達到該比例則觸發斷路器打開,默認50%(此參數設置需在10秒內達到了requestVolumeThreshold所設置的請求數量)
errorThresholdPercentage: 50
# 斷路器打開多長時間後,再次允許嘗試訪問(半開),仍失敗則繼續保持打開狀態,如成功訪問則關閉斷路器,默認 5000
sleepWindowInMilliseconds: 3000
無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,所以分享給大家。點這裏可以跳轉到教程。