分布式框架設計中的服務降級

2021-07-29 21:30:47 字數 1078 閱讀 3680

另外一些場景就是某些服務不可用時,又不能直接讓整個流程失敗就本地mcok(模擬)實現,做流程放通

eg 使用者登入餘額鑑權服務不能正常工作,需要做業務放通,記錄消費話單允許使用者繼續訪問,而不是返回失敗

為了保證以上兩種場景的正常服務,服務需要有降級

服務降級主要包括容錯降級和遮蔽降級

遮蔽降級:1)throw null 不發起遠端呼叫,直接返回空

2)throw exception 不發起遠端呼叫,直接丟擲指定異常

3)execute bean 不發起遠端呼叫,直接執行本地模擬介面實現

服務降級是可逆操作,當系統壓力恢復到一定值不需要降級服務時,要重新發起遠端呼叫,服務狀態改為正常

容錯降級:非核心服務不可呼叫時,可以對故障服務做業務放通,保證主流程不受影響

1)rpc異常:通常指超時、訊息解碼異常、流控異常、系統擁塞保護異常等

2)service異常 eg登入校驗異常、資料庫操作失敗異常等

容錯降級和遮蔽降級的區別在於:

1)觸發條件不同:遮蔽降級往往是人工根據系統的執行,手動設定

容錯降級是根據服務呼叫返回的結果,結合當前的服務級別,自動匹配觸發

2)作用不同:容錯降級是服務不可用時,讓消費者執行業務放通

遮蔽降級主要目的是將原屬於降級業務的資源調配出來供核心業務使用

3)呼叫機制不同,乙個發起遠端服務呼叫,乙個只做本地呼叫

執行業務放通的mock介面往往放在消費者端

1)執行業務放通時可能會依賴本地的資源,包括但不限於消費者依賴的服務、資料結構、資料庫等資源,這些事消費者私有的,服務提供者不可見,若放到服務提供者,會造成資源依賴,導致系統耦合

2)不同的消費者消費同乙個服務時,對失敗之後的處理策略存在差異,若都搬到服務提供者的mock介面,會造成**臃腫,難以維護

服務降級的優先順序是  消費者配置策略》服務提供者配置策略

遮蔽降級高於容錯降級

實現服務降級需要考慮幾個問題

1)那些服務是核心服務,哪些服務是非核心服務

2)那些服務可以支援降級,那些服務不能支援降級,降級策略是什麼

3)除服務降級之外是否存在更複雜的業務放通場景,策略是什麼?



分布式服務框架設計指標

特性名 功能名說明 服務訂閱發布 配置化發布和引用服務 支援通過xml配置的方式發布和匯入服務 服務自動發現機制 支援服務實時自動發現,由註冊中心推送服務提供者位址,消費者不需要配置服務提供者位址,位址透明化 支援執行態註冊和取消服務 服務路由 預設提供隨機路由 輪詢 基於權重的策略等 粘滯連線 總...

基於Remoting的分布式技術框架設計回顧之三

分布式系統中客戶端與伺服器通訊時需要每次攜帶一此附屬資訊,比如 語種 支援多國語言系統 資料庫連線字串 支援多賬套系統 客戶端ip等。在每個應用服務的介面中增加乙個這種附屬引數物件在大型系統中是不現實的。net remoting中的system.runtime.remoting.messaging....

一種分布式框架設計(二)

本篇主要介紹分布式框架的模組和其主要使用的通訊方式zmq。首先,對於任意的上游結點,它都有可能會把處理的結果傳送到任意的一台下游結點中,同時如果下游結點有新增的結點,上游結點還能自動感知並處理。另一方面,任意的下游結點也會要和所有的上游結點保持心跳。如果使用原始的socket,解決上述的問題會比較麻...