一般來說,在調用依賴服務的接口的時候,比較常見的一個問題,就是超時,超時是在一個複雜的分佈式系統中,導致不穩定,或者系統抖動,或者出現說大量超時,線程資源hang死,吞吐量大幅度下降,甚至服務崩潰,超時最大的一個問題。
10.1 手動設置timeout時長
execution.isolation.thread.timeoutInMilliseconds
手動設置timeout時長,一個command運行超出這個時間,就被認爲是timeout,然後將hystrix command標識爲timeout,同時執行fallback降級邏輯
默認是1000,也就是1000毫秒
HystrixCommandProperties.Setter()
.withExecutionTimeoutInMilliseconds(int value)
//手動設置timeout時長,一個command運行超出這個時間,就被認爲是timeout,然後將hystrix command標識爲timeout,同時執行fallback降級邏輯 .withExecutionTimeoutInMilliseconds(1000) |
10.2 控制是否要打開timeout機制
execution.timeout.enabled
控制是否要打開timeout機制,默認是true
HystrixCommandProperties.Setter()
.withExecutionTimeoutEnabled(boolean value)
讓一個command執行timeout,然後看是否會調用fallback降級
//控制是否要打開timeout機制,默認是(true),讓一個command執行timeout,然後看是否會調用fallback降級 .withExecutionTimeoutEnabled(true) |