- 以下的屬性都是spring cloud 1.5.9版本的。
commandProperties
-
execution.isolation.strategy
使用指令調用的隔離模式,預設采用線程隔離
-
execution.isolation.thread.timeoutInMilliseconds
一個指令執行的逾時時間,以毫秒為機關,預設是1s
-
execution.timeout.enabled
是否開啟逾時觸發,預設是開啟
-
execution.isolation.thread.interruptOnTimeout
使用線程隔離時,當指令逾時時是否對指令所線上程執行中斷操作,預設為true,隻會中斷線程處于阻塞狀态(如sleep,wait,join等狀态),正常運作的線程都不會中斷
-
execution.isolation.thread.interruptOnFutureCancel
使用線程隔離時,當Future取消時是否對指令所線上程執行中斷操作,預設為false
-
execution.isolation.semaphore.maxConcurrentRequests
使用信号量隔離時,指令調用最大的并發數,預設為10個
-
fallback.enabled
是否開啟fallback降級政策,預設為true
-
fallback.isolation.semaphore.maxConcurrentRequests
使用信号量隔離時,指令fallback調用的最大并發數,預設為10個
-
metrics.rollingStats.timeInMilliseconds
統計滾動視窗的時間,預設為10s(并且預設滾動視窗的桶數量為10個,是以一個桶一秒鐘),熔斷器會使用這個時間
-
metrics.rollingStats.numBuckets
統計視窗的桶數量,預設為10個,是以在一個10s的統計視窗中一個桶1秒鐘
-
metrics.rollingPercentile.enabled
是否開啟監控統計功能,計算各個百分比(SLA),預設為true
-
metrics.rollingPercentile.timeInMilliseconds
滾動百分比的統計時間,預設為60000即1分鐘,1分鐘統計一次
-
metrics.rollingPercentile.numBuckets
滾動百分比的桶數量,預設為6個,(在60s的視窗中10秒鐘一個桶)
-
metrics.rollingPercentile.bucketSize
每一個百分比視窗桶可以存放值得數量,預設為100即每個桶都多可以放100個值
-
metrics.healthSnapshot.intervalInMilliseconds
健康快照之間的間隔時間,預設為500ms(錯誤百分比等統計)
-
circuitBreaker.requestVolumeThreshold
一個滾動視窗内觸發熔斷的最少請求數,預設是20個。滾動視窗時間取自(metrics.rollingStats.timeInMilliseconds),預設10s内至少請求20次,熔斷才發揮作用。
-
circuitBreaker.sleepWindowInMilliseconds
觸發熔斷之後(拒絕請求),多長時間開始重新嘗試執行,預設是5000ms。步驟如下:熔斷器中斷請求5秒後會進入半打開狀态,放下一個請求進來重試,如果該請求成功就關閉熔斷器,否則繼續等待一個熔斷時間視窗
-
circuitBreaker.enabled
是否啟用熔斷器,預設是啟用
-
circuitBreaker.errorThresholdPercentage
設定啟動熔斷的錯誤或者延遲的比例,預設是50%。在一個滾動視窗(預設10s)如果超過50%的請求發生錯誤或者延遲,則觸發熔斷器,前提是circuitBreaker.requestVolumeThreshold條件滿足
-
circuitBreaker.forceOpen
是否強制開啟熔斷器,預設為false,開啟之後所有請求全部拒絕,直接fallback
-
circuitBreaker.forceClosed
是否強制關閉熔斷器,預設為false,開啟之後不能熔斷
-
requestLog.enabled
hystrix執行的日志是否列印,預設為true
-
requestCache.enabled
是都緩存請求,request-scope緩存,預設為true
threadPoolProperties
-
coreSize
設定線程池的大小,預設為10,也就是說最大并發為10
-
maximumSize
設定線程池打最大值,預設為10,隻有allowMaximumSizeToDivergeFromCoreSize
為true時才生效
-
allowMaximumSizeToDivergeFromCoreSize
該屬性允許配置maximumSize生效,當coreSize小于maximumSize時建立一個最大值為maximumSize并發的線程池,但會在相對不活動期間傳回線程到系統(受keepAliveTimeInMinutes控制)
-
keepAliveTimeMinutes
設定線程保持的時間,以分鐘為機關,預設為1分鐘,如果coreSize小于maximumSize,那麼這個屬性控制一個線程在不使用之後多久将被釋放
-
maxQueueSize
該屬性設定實作的最大隊列大小,預設為-1,-1代表SynchronousQueue将被使用,否則将使用一個正值的LinkedBlockingQueue,這個屬性隻适用于初始化期間,并且不能更改或者調整,如果修改的話需要重新開機
-
queueSizeRejectionThreshold
該屬性設定隊列大小拒絕門檻值,即maxQueueSize還沒有達到最大值,此值也能動态響應拒絕隊列的大小,當maxQueueSize=-1時此值不起作用
-
metrics.rollingStats.timeInMilliseconds
該屬性設定統計滾動視窗的持續時間,以還秒為機關。這是為線程池保留多長時間的名額,預設為1000ms
-
metrics.rollingStats.numBuckets
該屬性設定滾動統計視窗分成桶的數量,必須能被metrics.rollingStats.timeInMilliseconds整除,預設為10
collapserProperties
- maxRequestsInBatch 該屬性設定批量處理的最大請求數量,預設值為Integer.MAX_VALUE
- timerDelayInMilliseconds 該屬性設定多長時間之内算一次批處理,預設為10ms
- requestCache.enabled 是都緩存請求,request-scope緩存,預設為true
- metrics.rollingStats.timeInMilliseconds 統計滾動視窗的時間,預設為10s(并且預設滾動視窗的桶數量為10個,是以一個桶一秒鐘)
- metrics.rollingStats.numBuckets 統計視窗的桶數量,預設為10個,是以在一個10s的統計視窗中一個桶1秒鐘
- metrics.rollingPercentile.enabled 是否開啟監控統計功能,計算各個百分比(SLA),預設為true
- metrics.rollingPercentile.timeInMilliseconds 滾動百分比的統計時間,預設為60000即1分鐘,1分鐘統計一次
- metrics.rollingPercentile.numBuckets 滾動百分比的桶數量,預設為6個,(在60s的視窗中10秒鐘一個桶)
- metrics.rollingPercentile.bucketSize 每一個百分比視窗桶可以存放值得數量,預設為100即每個桶都多可以放100個值
本文參考資料:
https://github.com/Netflix/Hystrix/wiki/Configuration