分布式服務框架設計指標

2021-09-02 15:54:54 字數 1986 閱讀 3605

特性名

功能名說明

服務訂閱發布

配置化發布和引用服務

支援通過xml配置的方式發布和匯入服務

服務自動發現機制

支援服務實時自動發現,由註冊中心推送服務提供者位址,消費者不需要配置服務提供者位址,位址透明化

支援執行態註冊和取消服務

服務路由

預設提供隨機路由、輪詢、基於權重的策略等

粘滯連線

總是向同乙個提供方發起呼叫

路由定製

支援使用者自定義路由策略

集群容錯

failover

失敗自動切換,當出現失敗,重試其他伺服器,常用於讀操作及冪等性寫操作

failback

失敗自動恢復,後台記錄失敗請求,定時重發,常用於訊息通知操作

failfast

快速失敗,只發起一次呼叫,常用於非冪等性寫操作

服務呼叫

同步呼叫

消費者發起服務呼叫後,同步阻塞等待服務端返回

非同步呼叫

消費者發起服務呼叫後,不阻塞立即返回,由服務端返回應答後非同步通知消費者

並行呼叫

消費者同時對多個服務者提供批量發起服務呼叫請求,集中等待應答

多協議私有協議

支援二進位制協議,可以定製和擴充套件

公有協議 

提供webservice等公有協議

序列化方式

二進位製類序列化

支援thrift、protobuf buffer等二進位制協議

文字類序列化

支援json和xml等文字型別的序列化方式

統一配置 

本地靜態配置

安裝部署修改一次,執行態不修改配置

基於配置中心的動態配置

運形態需要調整引數,統一放到配置中心

線性特性

說明高效能

在同等資源占用下,單服務提供者的tps要盡可能高

低時延在同等資源占用下,服務呼叫時延要盡量低

效能線性增長

擴充套件服務提供者,效能要能夠線性增長

特性名功能名說明

服務註冊中心

服務健康狀態檢測

註冊中心通過心跳檢測服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者 

故障切換

註冊中心對等集群,任意一台宕掉後,將自動切換到另一台

高ha註冊中心全部宕機後,服務提供者和消費者仍能通過本地快取通訊

消除單點故障

服務無狀態

服務提供者無狀態

服務集群容錯

只要集群中有一台可用,業務就不會中斷

鏈路健壯性

心跳檢測

斷連重連機制

特性名功能名說明

服務執行態管控

服務路由

業務高峰期,動態修改路由策略實現導流

服務限流

資源成為瓶頸時,服務端和消費端的動態流控

服務遷入和遷出

實現資源的動態分配

服務降級

服務提供者故障時或業務高峰時,進行服務強制或容錯降級,執行本地降級邏輯,保證系統平穩執行

服務超時控制

動態調整超時時間,在業務高峰期保證業務呼叫成功率

服務監控 

效能統計

統計項包括服務呼叫時延、成功率、呼叫次數等

統計報表

提供多維度、實時和歷史資料包表,同比和環比等效能比對資料

告警指標異常,包括但不限簡訊、email、日誌記錄等

服務生命週期管理 

上線審批

需要通過正規的審批流程上線

下線通知 

在下線某個服務前一段時間,需要根據sla策略,通知消費者

服務灰度發布

故障快速定界定位

分布式日誌採集

呼叫鏈視覺化展示

執行日誌故障定位 

服務安全

敏感服務的授權策略

鏈路的安全防護

消費者和提供者之間的長連線,需要增加安全防護,例如基於token的安全認證機制 

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

另外一些場景就是某些服務不可用時,又不能直接讓整個流程失敗就本地mcok 模擬 實現,做流程放通 eg 使用者登入餘額鑑權服務不能正常工作,需要做業務放通,記錄消費話單允許使用者繼續訪問,而不是返回失敗 為了保證以上兩種場景的正常服務,服務需要有降級 服務降級主要包括容錯降級和遮蔽降級 遮蔽降級 1...

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

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

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

我們設計的分布式系統,在正常工作時呈現出網狀。服務有層次性。客戶的請求會逐步經歷各層服務進行處理。當遍歷全然部服務後才會完畢一次請求。每層服務會有若干臺機器。上游節點的機器能夠把輸出結果傳遞到下游節點的隨意一台機器上。當服務所依賴的資料須要更新時。我們須要做好同步工作,並保證在資料更新過程中服務是可...