04 | Service Mesh 的事實規範

本文僅作爲學習記錄,非商業用途,侵刪,如需轉載需作者同意。

一、service mesh出現的背景

微服務的好處:把複雜的系統拆開,便於代碼的維護,降低升級成本,機動性得到提高,簡化開發流程。
帶來的問題:複雜的分佈式架構使得各個微服務之間的連接管理、服務治理、監控變的非常複雜。

爲了解決這些問題而實現了負載均衡、動態路由、服務發現、高可用、熔斷等功能,跨語言服務化中同樣有類似的問題。所以需要一個通用的解決方案,就是service mesh。

service mesh實現功能的邊界:業務無關、透明的基礎層解決微服務之間連接、流量控制、服務治理、監控和遙測等問題。

在這裏插入圖片描述

數據面板:
以sidecar的模式與service部署在一起,保障請求數據在service之間進行可靠傳輸,提供服務治理以及請求狀態數據的提取與檢測。

控制面板:
主要控制服務間流量流向,請求路由,提供一種對數據面板訪問策略實施的干預機制和服務依賴,服務狀態的監控功能。

二、weiboMesh 數據面板

xxMesh感覺是一個概念或者整個方案的稱呼,具體的裏面分爲各個組件,實現不同的功能。

Motan-go的agent是weiboMesh的數據面板,由server agent和client agent組成,server agent 作爲服務提供方的方向代理使用(別的服務訪問我這個服務時先經過server agent),client agent 作爲服務依賴方調用服務的正向代理(有讚的Tether目前實現的就是這個,消費別的服務時先經過Tether)。
使用時只需要配置service(所提供的服務)和referer(所依賴的服務),2個功能由同一個agent進程提供,執行時運行不同的配置段,當需要升級的時候獨立應用進行。

在這裏插入圖片描述

吐槽下:這個課程真的是,說的感覺不是很清楚啊。。。

上面的圖我自己理解下:

client和server 就是服務,調用方和被調用方。
agent就是在sidecar中的一個組件,在調用和被調用時走的時client-agent(正向代理) 和 server-agent(反向代理) 。
agent之間可以使用自己定義的協議通信,服務和sidecar中的agent可以使用任意合適的協議。

服務註冊、發現、高可用、負載均衡、監控、跟蹤、依賴關係等其他數據收集都可以在agent這一層來做。

三、weiboMesh控制面板

控制面板實現了:流量的動態控制和策略執行,拓展了filter機制實現了身份驗證、安全管理、監控等數據收集,爲做決策提供決策依據。

在這裏插入圖片描述

weiboMesh在啓動的時候除了訂閱所依賴的服務外,還會訂閱各種控制策略執行所需要的執行指令。
數據面板的agent承接了所有服務的訪問,請求的流入流出,掌握所有請求的實時數據,請求狀態,並通過Metrics組件將數據推送到決策系統(包括動態流量調度和服務治理體系)。
決策系統通過預先建立好的模型,實時計算出集羣的流量負載情況,當觸發預警時,生成調度命令,發給註冊中心。
client agent 實時更新指令並出發cluster更新服務的實例列表,請求過程中負載均衡器會根據指令分配流量到不同的集羣中。

weiboMesh 通過agent、註冊中心、決策系統的共同作用來實現請求的高效穩定傳輸和服務的統一治理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章