Service Mesh:什麼是Sidecar模式

談到Service Mesh微服務架構,就不得不談Sidecar模式——一種單節點、多容器的應用設計形式。Sidecar主張以額外的容器來擴展或加強主容器,而這個額外的容器被稱爲Sidecar容器。java

一些例子以下:git

Web-server容器能夠與一個sidecar容易共同部署,該sidecar容器從文件系統中讀取由Web-server容器生成的web-server日誌,並將日誌/stream發送到原稱服務器(remote server)。Sidecar容器經過處理web-server日誌來做爲web-server容器的補充。固然,可能會有人說,爲何web-server不本身處理本身的日誌?答案在於如下幾點:web

  • 隔離(separation of concerns):讓每一個容器都可以關注核心問題。好比web-server提供網頁服務,而sidecar則處理web-server的日誌,這有助於在解決問題時不與其餘問題的處理髮生衝突;
  • 單一責任原則(single responsibility principle):容器發生變化須要一個明確的理由。換句更容易理解的話來講,每一個容器都應該是可以處理好「一件」事情的,而根據這一原則,咱們應該讓不一樣的容器分別展開工做,應該讓它們處理的問題足夠獨立;
  • 內聚性/可重用性(Cohesiveness/Reusability):使用sidecar容器處理日誌,這個容器按道理應該能夠應用的其餘地方重用;

以上例子正以下圖所示:spring

另外一個例子是在web-server容器與sidecar容器共同部署時,將文件系統與git存儲庫同步。(咱們須要注意Git同步容器的重用醒)以下圖所示,應用容器知識連接到本地機器的Redis服務器上:api


開源PaaS Rainbond v3.6.0版本現已發佈,提供Service Mesh微服務架構的開箱即用,插件式擴展治理功能,並支持spring cloud、api gateway、dubbo等框架。服務器

進一步瞭解:Rainbond網絡

相關文章
相關標籤/搜索