Hystrix 常用屬性配置


配置參數

默認值

說明

命令-執行屬性配置

  

  

hystrix.command.default.execution.isolation.strategy

THREAD

配置隔離策略,有效值 THREAD, SEMAPHORE

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds

1000

命令的執行超時時間,超出該時間會執行命令的 回退,可以使用 command.timeout.enabled 配置來關閉命令超時

hystrix.command.default.execution.timeout.enabled

true

配置命令的執行,是否會超時

hystrix.command.default.execution.isolation.thread.interruptOnTimeout

true

配置命令的執行發生超時,是否中斷命令的 run 方法的執行

hystrix.command.default.execution.isolation.thread.interruptOnCancel

false

配置命令在取消時,是否中斷命令的 run 方法的執行

hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests

10

當使用 ExecutionIsolationStrategy.SEMAPHORE 隔離策略時,設置允許執行命令的 run 方法的最大請求數。如果此最大並發限制被命中,則后續請求將被拒絕。在調整信號量大小時使用的邏輯與選擇要添加到線程池中的線程的數量基本相同,,但信號量的開銷要小得多,通常執行速度要快得多 (子毫秒),否則您將使用線程

命令-回退屬性配置

  

  

hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests

10

設置 ExecutionIsolationStrategy.SEMAPHORE 隔離策略時,設置允許執行命令的 getFallback 方法的最大請求數量

hystrix.command.default.fallback.enabled

true

此屬性確定在命令發生調用失敗或拒絕時是否會嘗試調用命令的 getFallback 方法

命令-斷路器屬性配置

  

  

hystrix.command.default.circuitBreaker.enabled

true

此屬性確定是否啟用斷路器跟蹤運行狀況和短路請求

hystrix.command.default.circuitBreaker.requestVolumeThreshold

20

此屬性設置滾動窗口中將短路請求的最小請求數。

hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds

  

此屬性設置在短路請求后拒絕請求的休眠時間,然后再允許嘗試確定命令是否應再次關閉。

hystrix.command.default.circuitBreaker.errorThresholdPercentage

50

此屬性設置斷路器打開並啟動對回退邏輯的短路請求的錯誤百分比。

hystrix.command.default.circuitBreaker.forceOpen

false

此屬性如果為 true,則強制斷路器進入打開狀態

hystrix.command.default.circuitBreaker.forceClosed

false

此屬性如果為 true,則強制斷路器進入關閉狀態,

命令-指標屬性配置

  

  

hystrix.command.default.metrics.rollingStats.timeInMilliseconds

10000

此屬性設置統計滾動窗口的持續時間

hystrix.command.default.metrics.rollingStats.numBuckets

10

屬性設置滾動窗口划分的桶數,例如,滾動窗口持續時間為10秒,默認配置10個桶,那么每秒鍾一個桶用於存放統計數據。配置值必須符合以下條件 metrics.rollingStats.timeInMilliseconds % metrics.rollingStats.numBuckets == 0,否則會拋出異常。

此屬性只影響初始度量值的創建,並且在啟動后對此屬性進行的調整將不會生效。

hystrix.command.default.metrics.rollingPercentile.enabled

true

此屬性指示是否應跟蹤執行延遲,並將其計算為百分點。如果禁用它們,則所有匯總統計 (平均值、百分點) 都將返回為 -1

hystrix.command.default.metrics.rollingPercentile.timeInMilliseconds

60000

此屬性設置滾動百分比窗口的持續時間,其中保留執行時間以允許百分比計算 (以毫秒為單位),此屬性只影響初始度量值的創建, 並且在啟動后對此屬性進行的調整將不會生效

hystrix.command.default.metrics.rollingPercentile.numBuckets

6

屬性設置滾動百分比窗口划分的桶數,例如,滾動百分比窗口持續時間為60秒,默認配置6個桶,那么一個桶用於存放10秒的統計數據。配置值必須符合以下條件 metrics.rollingPercentile.timeInMilliseconds % metrics.rollingPercentile.numBuckets == 0,否則會拋出異常。

此屬性只影響初始度量值的創建,並且在啟動后對此屬性進行的調整將不會生效

hystrix.command.default.metrics.rollingPercentile.bucketSize

100

此屬性設置每個桶保留的最大執行時間數,如果超出桶的最大執行數量,則會記錄到下一個桶

此屬性只影響初始度量值的創建,並且在啟動后對此屬性進行的調整將不會生效

hystrix.command.default.metrics.healthSnapshot.intervalInMilliseconds

500

此屬性設置在允許運行健康快照以計算成功和錯誤百分比並影響斷路器狀態的等待間隔的時間 (以毫秒為單位)。

誤差百分比的連續計算是 CPU 密集型的,因此此屬性允許您控制計算的頻率

命令-請求上下文屬性配置

  

  

hystrix.command.default.requestCache.enabled

true

此屬性指示是否啟用請求緩存

hystrix.command.default.requestLog.enabled

true

此屬性指示是否應將命令執行和事件記錄到日志

合並屬性配置

  

  

hystrix.collapser.default.maxRequestsInBatch

Integer.MAX_VALUE

此屬性設置合並處理允許的最大請求數

hystrix.collapser.default.timerDelayInMilliseconds

10

此屬性設置多長時間內的請求進行合並

hystrix.collapser.default.requestCache.enabled

true

此屬性設置啟動合並請求緩存

線程池屬性配置

  

  

hystrix.threadpool.default.coreSize

10

此屬性配置線程池大小

hystrix.threadpool.default.maximumSize

10

此屬性設置最大線程池大小。這是可在拒絕命令執行的最大並發量。請注意, 如果您必須同時設置 allowMaximumSizeToDivergeFromCoreSize

在1.5.9版本 之前, 線程池和最大線程池總是相等的。

hystrix.threadpool.default.allowMaximumSizeToDivergeFromCoreSize

false

此屬性允許 maximumSize 的配置生效,如果maximumSize 大於 coreSize 配置,則在 keepAliveTimeMinutes 時間后回收線程

hystrix.threadpool.default.keepAliveTimeMinutes

1

此屬性設置線程空閑生存時間 (分鍾)

hystrix.threadpool.default.metrics.rollingStats.timeInMilliseconds

10000

此屬性設置統計滾動窗口的持續時間 (以毫秒為單位)

hystrix.threadpool.default.metrics.rollingStats.numBuckets

10

屬性設置滾動窗口划分的桶數,例如,滾動窗口持續時間為10秒,默認配置10個桶,那么每秒鍾一個桶用於存放統計數據。配置值必須符合以下條件 metrics.rollingStats.timeInMilliseconds % metrics.rollingStats.numBuckets == 0,否則會拋出異常。

此屬性只影響初始度量值的創建,並且在啟動后對此屬性進行的調整將不會生效

   

注意:配置參數都是默認全局配置,如果需要針對命令配置,則將 default 替換為 HystrixCommandKey 、 HystrixCollapserKey 和 HystrixThreadPoolKey;在 HystrixCommand 子類的構造函數調用中,可以指定命令的 HystrixCommandKey 和 HystrixThreadPoolKey,示例如下:

public SpeakCommand(String msg){

super(

Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("BatchSpeak"))

.andCommandKey(HystrixCommandKey.Factory.asKey("commandkey"))

.andThreadPoolKey(HystrixThreadPoolKey.Factory.asKey("threadPoolKey"))

);

}

在 HystrixCollapser 子類的構造函數調用中,可以指定合並請求的 HystrixCollapserKey ,示例如下:

public SpeakCollapserCommand(String paramName){

super(

Setter.withCollapserKey(HystrixCollapserKey.Factory.asKey("SpeakCollapser"))

);

this.paramName=paramName;

}

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM