天天看點

Hystrix中所有Command/Property/HystrixProperty屬性解讀大全

@HystrixCommand(fallbackMethod = "str_fa1lbackMethod",
groupKey = "strGroupCommand",
commandKey = "strCommarld" ,
threadPoolKey = "strThreadPoo1",commandProperties = {
1/沒置隔離策喀,THREAD表示線程池SEMAPHORE:信号地隔離
@HystrixProperty(name = "execution.isolation.strategy" , value = "THREAD"),
//當隔離策喀選擇信号池隔離的時候,用來設定信号地的大小(最大并發數)
@HystrixProperty(name = "execution.isolation.semaphore.maxConcurrentRequests", value
//配置指令執行的逾時時間
@HystrixProperty(name = "execution.isolation.thread.timeoutinMilliseconds", value = "10"),
//是否啟用逾時時間
@HystrixProperty(name = "execution.timeout.enabled", value = "true"),
//執行逾時的時候是否中斷
@HystrixProperty(name = "execution.isolation.thread.interruptOnTimeout",value = "tr
ue" ),
/l/執行被取消的時候是否中斷
@HystrixProperty(name = "execution.isolation.thread.interruptOnCance1",value = "true
//允許回調方法執行的最大并發數
@HystrixProperty(name = "fal1back.isolation.semaphore.maxConcurrentRequests", value
//服務降級是否啟用,是否執行回調函數
@HystrixProperty(name = "fallback.enabled", value = "true"),
@HystrixProperty(name = " circuitBreaker . enabled", value = "true"),
//該屬性用來沒置在燎動時間窗中,斷路器熔斷的最小請求數。例如,預設該值為20的時候,
//如果滾動時間窗(默以10秒)内僅收到了19個請求,即使這19個請求都失敗了, 斷路器也不會打開。
@HystrixProperty(name = " circuitBreaker . requestVolumeThreshold", value = "20"),
//該屬性用來沒置在燎動時間窗中,表示在熔動時間窗中,在請求數量超過
// circuitBreaker. requestVolumeThreshold的情況下,如果錯誤請求數的百分比超過50,
//就把斷路器沒置為”打開”狀态,否則就設定為"關閉”狀态。
@HystrixProperty(name = "circuitBreaker . errorThresholdPercentage", value = "50"),
//該屬性用來沒置當斷路器打開之後的休眠時間窗。休眠時間窗結束之後,
//會将斷路器置為"半開”狀态,嘗試熔斷的請求指令,如果依然失敗就将斷路器繼續設定為”打開”狀态,
//如果成功就沒置為"關閉”狀态。
@HystrixProperty(name = "circuitBreaker . sleepWindowinMilliseconds", value = "5000"),
//斷路器強制打開
@HystrixProperty(name = " circuitBreaker . forceOpen", value = "false"),
//斷路器強制關閉
@HystrixProperty(name = " circuitBreaker . forceClosed", value = "false"),
//滾動時間窗沒置,該時間用 于斷路器判斷健康度時需要收集資訊的持續時間
@HystrixProperty(name = "metrics . rollingStats . timeinMilliseconds", value = "10000"),
//該屬性用來沒置滾動時間窗統計名額資訊時劃分”桶"的數量,斷路器在收集名額資訊的時候會根據
//設定的時間窗長度拆分成多個"桶"來累計各路徑成本,每個”桶"記錄了-段時間内 的采集名額。
//比如10秒内拆分成10個"桶"收集這樣,是以timeinMilliseconds 必須能被numBuckets 整除。否則會抛異常
@HystrixProperty(name = "metrics .rollingStats . numBuckets", value = "10"),
eryst -XFT UpErtyinamc -n Cu-toreaker .TurCu-oscu )vaLuc一T d- 3 ,,
//滾動時間窗設定,該時間用于斷路 器判斷健康度時需要收集資訊的持續時間
@HystrixProperty(name = "metrics . rollingStats . timeinMilliseconds", value =” 10000"),
//該屬性用來沒置旅動時間窗統計名額資訊時劃分”桶”的數量,斷路器在收集名額資訊的時候會根據
//設定的時間窗長度拆分成多個"桶”來累計各路徑成本,每個”桶"記錄了-段時間内的來集名額。
//比如10秒内拆分成10個”桶"收集這樣,是以timeinMilliseconds 必須能被numBuckets 整除。否則會抛異常
@HystrixProperty(name = "metrics .rollingStats . numBuckets", value = "10"),
//該屬性用來沒置對指令執行的延遲是否使用百分位數來跟蹤和計算。如果沒置為false,那麼所有的概要統計都将傳回-1。
@HystrixProperty(name = "metrics. rollingPercentile.enabled", value = "false"),
//該屬性用來設定百分位統計的滾動視窗的持續時間,機關為毫秒。
@HystrixProperty(name = "metrics .rollingPercentile . timeInMilliseconds", value = "60000"),
. //該屬性用來設定百分位統計壤動視窗中使用“桶”的數量。
@HystrixProperty(name = "metrics.rollingPercentfle . numBuckets", value = "60000"),
//該屬性用來沒置在執行過程中每個 “桶”中保留的最大執行次數。如果在滾動時間窗内發生超過該沒定值的執行次數,
//就從最初的位置開始重寫。例如,将該值設定為100, 滾動視窗為10秒,若在10秒内一個 “桶”中發生了500次執行,
//那麼該“桶”中隻保留最後的100次執行的統計。另外,增加該值的大小将會增加記憶體量的消耗,并增加排序百分位數所需的計算時間。
@HystrixProperty(name = "metrics. rollingPercentile . bucketSize", value = "100"),
//該屬性用來沒置采集影響斷路器狀态的健康快照(請求的成功、錯誤百分比) 的間隔等待時間。
@HystrixProperty(name = "metrics . healthSnapshot . intervalinMilliseconds", value = "500") ,
//是否開啟請求緩存
@HystrixProperty(name = "requestCache.enabled", value = "true"),
// HystrixCommand 的執行和事件是否列印日志到HystrixRequestLog中
@HystrixProperty(name = "requestLog. enabled", value = "true"),
@HystrixProperty(name = "metrics . rollingPercentile. bucketSize", value = "10"),
//該屬性用來汝置采集影響斷路器狀态的健康快照(請求的成功、錯誤百分 比)的間隔等待時間。
@HystrixProperty(name = "metrics .healthSnapshot . intervalinMilliseconds", value = "500"),
//是否開啟請求緩存
@HystrixProperty(name = "requestCache. enabled", value = "true"),
// HystrixCommand的執 行和事件是否列印日志到HystrixRequestLog中
@HystrixProperty(name = "requestLog. enabled", value = "true"),
},
threadPoolProperties = {
//該參數用來沒置執行指令線程池的核心線程數,該值 也就是指令執行的最大并發量
@HystrixProperty(name = "coreSize", value = "10"),
//該參數用來沒置線程池的最大隊列大小。當設定為-1時,線程池将使用SynchronousQueue實作的隊列,
//否則将使用LinkedBlockingQueue 實作的隊列。
@HystrixProperty(name = "maxQueueSize", value = "-1"),
//該參數用來為隊列設定拒絕阙值。通過該參數,即使隊列沒 有達到最大值也能拒絕請求。
//該參數主要是對LinkedBlockingQueue隊列的補充,因為LinkedBlockingQueue
//隊列不能動态修改它的對象大小,而通過該屬性就可以凋整拒絕請求的隊列大小了。
@HystrixProperty(name = "queueSizeRejectionThreshold", value = "5"),
}
public String strConsumer() {
return "hello 2020" ;