微服務架構 服務降級

2022-06-06 11:51:10 字數 1936 閱讀 4547

什麼是服務降級?當伺服器壓力劇增的情況下,根據實際業務情況及流量,對一些服務和頁面有策略的不處理或換種簡單的方式處理,從而釋放伺服器資源以保證核心交易正常運作或高效運作。

服務降級主要用於什麼場景呢?當整個微服務架構整體的負載超出了預設的上限閾值或即將到來的流量預計將會超過預設的閾值時,為了保證重要或基本的服務能正常執行,我們可以將一些 不重要 或 不緊急 的服務或任務進行服務的 延遲使用 或 暫停使用。

3.1 分布式開關

根據上述需求,我們可以設定乙個分布式開關,用於實現服務的降級,然後集中式管理開關配置資訊即可。具體方案如下:

服務降級-分布式開關

3.2 自動降級

當我們去秒殺或者搶購一些限購商品時,此時可能會因為訪問量太大而導致系統崩潰,此時開發者會使用限流來進行限制訪問量,當達到限流閥值,後續請求會被降級;降級後的處理方案可以是:排隊頁面(將使用者導流到排隊頁面等一會重試)、無貨(直接告知使用者沒貨了)、錯誤頁(如活動太火爆了,稍後重試)。

3.3 配置中心

微服務降級的配置資訊是集中式的管理,然後通過視覺化介面進行友好型的操作。配置中心和應用之間需要網路通訊,因此可能會因網路閃斷或網路重啟等因素,導致配置推送資訊丟失、重啟或網路恢復後不能再接受、變更不及時等等情況,因此服務降級的配置中心需要實現以下幾點特性,從而盡可能的保證配置變更即使達到:

服務降級-配置中心

3.4 處理策略

當觸發服務降級後,新的交易再次到達時,我們該如何來處理這些請求呢?從微服務架構全域性的視角來看,我們通常有以下是幾種常用的降級處理方案:

針對後端**層面的降級處理策略,則我們通常使用以下幾種處理措施進行降級處理:

4.1 分級降級

當微服務架構發生不同程度的情況時,我們可以根據服務的對比而進行選擇式捨棄(即丟車保帥的原則),從而進一步保障核心的服務的正常運作。

如果等線上服務即將發生故障時,才去逐個選擇哪些服務該降級、哪些服務不能降級,然而線上有成百上千個服務,則肯定是來不及降級就會被拖垮。同時,在大促或秒殺等活動前才去梳理,也是會有不少的工作量,因此建議在開發期就需要架構師或核心開發人員來提前梳理好,是否能降級的初始評估值,即是否能降級的預設值。

為了便於批量操作微服務架構中服務的降級,我們可以從全域性的角度來建立服務重要程度的評估模型,如果有條件的話,建議可以使用 層次分析法(the analytic hierarchy process,簡稱ahp) 的數學建模模型(或其它模型)來進行定性和定量的評估(肯定比架構師直接拍腦袋決定是否降級好很多倍,當然難度和複雜度也會高許多,即你需要乙個會數學建模人才),而層次分析法的基本思路是人對乙個複雜的決策問題的思維和判斷過程大體上是一樣的。

評估模型:

設計說明:

以上模型只是整體微服務架構的服務降級評估模型,具體大促或秒殺活動時,建議以具體主題為中心進行建立(不同主題的活動,因其依賴的服務不同,而使用不同的進行降級更為合理)。當然模型可以使用同乙個,但其資料需要有所差異。最好能建立一套模型庫,然後實施時只需要輸入相關服務即可輸出最終降級方案,即輸出本次大促或秒殺時,當發生藍色風暴時需要降級的服務清單、當發生黃色風暴時需要降級的服務清單……

4.2 降級權值

微服務架構中有服務權值的概念,主要用於負載時的權重選擇,同樣服務降級權值也是類似,主要用於服務降級選擇時的細粒度優先順序抉擇。所有的服務直接使用以上簡單的四級劃分方式進行統一處理,顯然粒度太粗,或者說出於同一級的多個服務需要降級時的 降級順序 該如何?甚至我想要人工智慧化的 自動降級,又該如何更細粒度的控制?

基於上述的這些ai化的需求,我們可以為每乙個服務分配乙個降級權值,從而便於更加智慧型化的實現服務治理。而其評估的數值,同樣也可以使用數學模型的方式進行 定性 與 定量 的評估出來,也可以架構師根據經驗直接拍腦袋來確定。

微服務與微服務架構

微服務 微服務強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題 提供落地對應服務的乙個服務應用,狹意的看,可以看作eclipse裡面的乙個個微服務工程 或者module。例如 訂單服務 支付服務 微服務架構 馬丁.福勒 martin fowler 微服務架構介紹 微服務架構是 種架構模式...

微服務的降級學習

什麼是降級?1.開關 先講一下開關的由來,例如京東在6月18日做店慶 活動,在交易下單環節,可能需要呼叫a b c三個介面來完成,但是其實a和b是必須的,c只是附加的功能 例如在下單的時候做一下推薦 可有可無,在平時系統沒有壓力,容量充足的情況下,呼叫下沒問題,但是在類似店慶之類的大促環節,系統已經...

架構之服務降級

降級是系統保護的重要手段,保證系統的高可用,簡單理解,降級就是丟車保帥,在系統壓力極大時,暫時不做非必要動作,以保證系統核心功能的正常。例如電商系統中,購物車 結算這類的核心功能就是保護物件,是絕對不能降級的,而像個性化自動商品推薦服務就可以暫時不提供。降級策略有很多種,可以從下面3個維度分為5種策...