Hystrix自恢復模式


Hystrix自恢復模式


服務的健康狀況 = 請求失敗數 / 請求總數.
熔斷器開關由關閉到打開的狀態轉換是通過當前服務健康狀況和設定閾值比較決定的.

  1. 當熔斷器開關關閉時, 請求被允許通過熔斷器. 如果當前健康狀況高於設定閾值, 開關繼續保持關閉. 如果當前健康狀況低於設定閾值, 開關則切換為打開狀態.
  2. 當熔斷器開關打開時, 請求被禁止通過.
  3. 當熔斷器開關處於打開狀態, 經過一段時間后, 熔斷器會自動進入半開狀態, 這時熔斷器只允許一個請求通過. 當該請求調用成功時, 熔斷器恢復到關閉狀態. 若該請求失敗, 熔斷器繼續保持打開狀態, 接下來的請求被禁止通過.
  1. 構建Hystrix的Command對象, 調用執行方法.
  2. Hystrix檢查當前服務的熔斷器開關是否開啟, 若開啟, 則執行降級服務getFallback方法.
  3. 若熔斷器開關關閉, 則Hystrix檢查當前服務的線程池是否能接收新的請求, 若超過線程池已滿, 則執行降級服務getFallback方法.
  4. 若線程池接受請求, 則Hystrix開始執行服務調用具體邏輯run方法.
  5. 若服務執行失敗, 則執行降級服務getFallback方法, 並將執行結果上報Metrics更新服務健康狀況.
  6. 若服務執行超時, 則執行降級服務getFallback方法, 並將執行結果上報Metrics更新服務健康狀況.
  7. 若服務執行成功, 返回正常結果.
  8. 若服務降級方法getFallback執行成功, 則返回降級結果.
  9. 若服務降級方法getFallback執行失敗, 則拋出異常.


熔斷器是否開啟,是通過滾筒式統計方式,統計一個窗口期內,失敗請求數所占的比例,如果低於閾值,打開熔斷器,高於則處於關閉狀態。

   Hystrix用的是一種自恢復斷舍離方式,防止雪崩的效應,一個很好的方法。對於投資理財,特別是對於投資公司來說也可以用來降低風險。有時候我們會購買多支股票,有的漲,有的跌,對於跌,可以設置一個閾值,《原則》的作者瑞·達利歐,給自己定的閾值是5%,一旦股票跌了5%,為了降低風險,果斷拋售,讓損失止步於5%,而不是讓其進行惡化。對於開關,可以給自己定義一個閾值比如50%,當某個時間段內比如說一個月內,跌的股票所占的比例高於50%,可能股票市場形勢不太好,我們需要打開開關,窗口期內不再購買股票,到了下一個窗口期,可以嘗試性的購買,如果股票漲了,可以半打開開關,再嘗試性的購買幾支股票,如果失敗的比例低於閾值,關閉開關,多買一些股票,如果還是繼續失敗,那需要繼續打開開關,再等等看,等到下一個窗口期,重新嘗試。


Hystrix就好比,一個人被毒蛇咬了一口,與其讓毒性擴散到全身,倒不如自斷手臂,至少這樣能夠繼續活下去。To be or not to be,That's a question,需要我們做出選擇,去斷舍離。hystrix,自恢復隔離模式,讓你的系統更穩定,財富收益更穩健。

 轉自:https://zhuanlan.zhihu.com/p/63773699


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM