1. 程式人生 > >【微服務】服務熔斷與降級(一)

【微服務】服務熔斷與降級(一)

服務熔斷、服務降級,好高大上的樣子,以前望塵莫及,今日終於揭開它神祕面紗,好好應用一把了。

瞭解這兩者之前,我們首先要了解是產生什麼問題了,才需要熔斷、降級。

服務雪崩

分散式系統面臨的問題是,複雜分散式體系結構中的應用有十多個依賴關係,每個依賴在某些時候將不可避免的失敗。
這裡寫圖片描述
容器中一個請求需要呼叫A,P,H,I,如果I服務超時會出現什麼情況呢?一次這樣,如果上萬次呢,會導致雪崩。
這裡寫圖片描述

  • 服務雪崩
    多個微服務間呼叫,假設A調B,B調C,C調其他,這就是“扇出”,如果扇出的鏈路上某個微服務的呼叫響應時間過長或不可用,對微服務A的呼叫會佔用越來越多的資源,進而引起“雪崩效應”。

對於高流量來說,單一後端依賴可能導致所有伺服器上的所有資源都在幾秒內飽和,比失敗更糟糕的是,這些應用程式還可能導致服務間延遲增加,備份佇列,執行緒和其他系統資源緊張,導致整個系統發生更多的級聯故障,這些都表示需要對故障和延遲隔離和管理,以便單個依賴關係的失敗,不能取消整個應用程式或系統。

服務熔斷

一般是某個服務故障或異常引起,類似“保險絲”,當某個異常被觸發,直接熔斷整個服務,而不是等到此服務超時。

服務降級

降級是在客戶端,與服務端無關。

降級,從整體負荷考慮,某個服務熔斷後,伺服器將不再被呼叫,此時客戶端可以自己準備一個本地的fallback回撥,這樣,雖然服務水平下降,但可用,比直接掛掉要好。
這裡寫圖片描述


當整體資源快不夠了,先將某些服務關掉,待度過難關,再開啟。

服務熔斷與降級,我們用的是Hystrix,如何使用呢,我們下篇見,歡迎來訪。