天天看點

spring cloud hystrix 配置屬性大全

  • 以下的屬性都是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

繼續閱讀