Hystrix部分參數說明

Hystrix部分參數說明
https://github.com/Netflix/Hystrix/wiki/Configuration


Command Properties
1、Execution

控制HystrixCommand.run()的執行策略


execution.isolation.strategy 執行隔離策略
THREAD  每次在一個線程中執行,併發請求數限制於線程池的線程數
SEMAPHORE 在調用線程中執行,併發請求數限制於semaphore信號量的值

Thread是默認推薦的選擇。


execution.isolation.thread.timeoutInMilliseconds

超時時間,默認1000ms


execution.timeout.enabled

是否開啓超時,默認true


execution.isolation.thread.interruptOnTimeout
當超時的時候是否中斷(interrupt) HystrixCommand.run()執行

 

2、Fallback

設置當fallback降級發生時的策略


Circuit Breaker
配置熔斷的策略
circuitBreaker.enabled

是否開啓熔斷,默認true


circuitBreaker.requestVolumeThreshold

設置一個滑動窗口內觸發熔斷的最少請求量,默認20。例如,如果這個值是20,一個滑動窗口內只有19個請求時,即使19個請求都失敗了也不會觸發熔斷。


circuitBreaker.sleepWindowInMilliseconds

設置觸發熔斷後,拒絕請求後多長時間開始嘗試再次執行。默認5000ms。


circuitBreaker.errorThresholdPercentage

設置觸發熔斷的錯誤比例。默認50,即50%。


circuitBreaker.forceOpen

是否強制開啓熔斷


circuitBreaker.forceClosed

是否強制關閉熔斷


3、Metrics

設置關於HystrixCommand執行需要的統計信息


metrics.rollingStats.timeInMilliseconds
設置滑動窗口的統計時間。熔斷器使用這個時間。

默認10s


metrics.rollingStats.numBuckets

設置滑動統計的桶數量。默認10。metrics.rollingStats.timeInMilliseconds必須能被這個值整除。


metrics.rollingPercentile.enabled
設置執行時間是否被跟蹤,並且計算各個百分比,50%,90%等的時間。默認true。

 

4、Request Context

設置HystrixCommand使用的HystrixRequestContext相關的屬性.


requestCache.enabled

設置是否緩存請求,request-scope內緩存。默認true


requestLog.enabled

設置HystrixCommand執行和事件是否打印到HystrixRequestLog中。


ThreadPool Properties
配置HystrixCommand使用的線程池的屬性。

大多數情況下默認的10個線程都是值得建議的。


coreSize

設置線程池的core size,這是最大的併發執行數量。默認10


maxQueueSize

最大隊列長度。設置BlockingQueue的最大長度。默認-1。

如果設置成-1,就會使用SynchronizeQueue。

如果其他正整數就會使用LinkedBlockingQueue。


queueSizeRejectionThreshold
設置拒絕請求的臨界值。只有maxQueueSize爲-1時纔有效。

設置設個值的原因是maxQueueSize值運行時不能改變,我們可以通過修改這個變量動態修改允許排隊的長度。默認5


keepAliveTimeMinutes
設置keep-live時間。默認1分鐘

這個一般用不到因爲默認corePoolSize和maxPoolSize是一樣的。


轉載地址:點擊打開鏈接

發佈了34 篇原創文章 · 獲贊 65 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章