Service Mesh是什么
中文翻譯是服務網格,是微服務架構中重要的基礎設施。
簡單來說,這是一個實現服務間請求可靠傳遞的,負責服務發現、服務間通信,且對應用程序透明的輕量級網絡代理。
通俗來說,其實就是服務端到端的數據傳輸代理,類似TCP/IP,將微服務必要且重復的功能抽離,包括服務發現、異常處理、熔斷等功能。
網絡架構的抽象
應用程序中網絡傳輸控制的演變
1.網絡邏輯與應用邏輯耦合
2.依靠TCP/IP,網絡邏輯從應用邏輯中抽離
微服務網絡服務的演變
1.服務自行維護服務注冊與發現、負載均衡、熔斷、重試等
2.使用類庫簡化邏輯
3.抽離出服務進行控制,應用邏輯不再關心網絡邏輯
Sidecar 邊三輪(噗)
抽離出網絡代理后,一個服務不再與其依賴服務進行網絡連接,而是通過其綁定的代理進行通信。被依賴的服務也綁定了網絡代理,兩個服務由直連轉變為只與代理連接,服務之間變為代理之間交互,形成了類似Sidecar的架構。
Sidecar
使用Service Mesh之前與之后對比,請求的服務注冊與發現邏輯從應用邏輯抽離
服務網格
多個服務之間通過網絡代理連接后,形成了一個虛擬網絡層,部署圖如下:
通過代理連接的網絡層
單看網絡代理,形成了網絡的形式
這種網格網絡就是Service Mesh服務網格了,這個網絡使得微服務必要的服務發現、異常處理、監控等功能可以很方便地實現。
參考資料
Service Mesh深度解析 — 極客時間
模式之服務網格 — InfoQ
本文搬自我的博客,歡迎參觀!