十、 基於timeout機制爲服務接口的調用超時提供安全保護

一般來說,在調用依賴服務的接口的時候,比較常見的一個問題,就是超時,超時是在一個複雜的分佈式系統中,導致不穩定,或者系統抖動,或者出現說大量超時,線程資源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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章