Hystrix全部的配置都是hystrix.command.[HystrixCommandKey]
開頭,其中[HystrixCommandKey]
是可變的,默認是default
,即hystrix.command.default
;另外Hystrix內置了默認參數,若是沒有配置Hystrix屬性,默認參數就會被設置,其優先級:後端
XXX
XXX
execution.isolation.strategy= THREAD|SEMAPHORE服務器
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds
用來設置thread和semaphore兩種隔離策略的超時時間,默認值是1000。併發
hystrix.command.[CommandKey].execution.isolation.thread.timeoutInMilliseconds
這個超時時間要根據CommandKey
所對應的業務和服務器所能承受的負載來設置,要根據CommandKey
業務的平均響應時間設置,通常是大於平均響應時間的20%~100%
,最好是根據壓力測試結果來評估,這個值設置太大,會致使線程不夠用而會致使太多的任務被fallback;設置過小,一些特殊的慢業務失敗率提高,甚至會形成這個業務一直沒法成功,在重試機制存在的狀況下,反而會加劇後端服務壓力。微服務
根據微服務實際狀況來定:測試
通常實際大小爲:spa
這個值並不是TPS
、QPS
、RPS
等都是相對值,指的是1秒時間窗口內的事務/查詢/請求,semaphore.maxConcurrentRequests
是一個絕對值,無時間窗口,至關於亞毫秒級的,指任意時間點容許的併發數。當請求達到或超過該設置值後,其其他就會被拒絕。默認值是100。線程
是否開啓超時,默認是true,開啓。code
發生超時是是否中斷線程,默認是true。事務
取消時是否中斷線程,默認是false。io