| 配置參數 |
默認值 |
說明 |
| 命令-執行屬性配置 |
|
|
| 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;
}
