微軟AzureCAT團隊發布微服務的設計模式
前不久,微軟 AzureCAT 模式和實踐團隊在 Azure架構中心 發布了 9個新的微服務設計模式 ,并給出了這些模式解決的問題、方案、使用場景、實現考量等。微軟團隊稱這9個模式有助于更好的設計和實現微服務,同時看到業界對微服務的興趣日漸增長,所以也特意將這些模式記錄并發布。
下圖是微軟團隊建議如何在微服務架構中使用這些模式:
文中提到的9個模式包括:外交官模式(Ambassador),防腐層(Anti-corruption layer),后端服務前端(Backends for Frontends),艙壁模式(Bulkhead),網關聚合(Gateway Aggregation),網關卸載(Gateway Offloading),網關路由(Gateway Routing),挎斗模式(Sidecar)和絞殺者模式(Strangler)。這些模式絕大多數也是目前業界比較常用的模式,如:
- 外交官模式(Ambassador)可以用與語言無關的方式處理常見的客戶端連接任務,如監視,日志記錄,路由和安全性(如TLS)。
- 防腐層(Anti-corruption layer)介于新應用和遺留應用之間,用于確保新應用的設計不受遺留應用的限制。
- 后端服務前端(Backends for Frontends)為不同類型的客戶端(如桌面和移動設備)創建單獨的后端服務。這樣,單個后端服務就不需要處理各種客戶端類型的沖突請求。這種模式可以通過分離客戶端特定的關注來幫助保持每個微服務的簡單性。
- 艙壁模式(Bulkhead)隔離了每個工作負載或服務的關鍵資源,如連接池、內存和CPU。使用艙壁避免了單個工作負載(或服務)消耗掉所有資源,從而導致其他服務出現故障的場景。這種模式主要是通過防止由一個服務引起的級聯故障來增加系統的彈性。
- 網關聚合(Gateway Aggregation)將對多個單獨微服務的請求聚合成單個請求,從而減少消費者和服務之間過多的請求。
- 挎斗模式(Sidecar)將應用程序的輔助組件部署為單獨的容器或進程以提供隔離和封裝。
設計模式是對針對某一問題域的解決方案,它的出現也代表了工程化的可能。隨著微服務在業界的廣泛實踐,相信這個領域將會走向成熟和穩定,筆者期望會有更多的模式和實踐出現,幫助促進這一技術的進一步發展。感興趣的讀者可以參考微軟的 微服務設計模式 一文以及 Azure架構中心 的資料為自己的微服務選擇合適的模式或者提出新的模式。
來自: http://www.infoq.com/cn/news/2017/08/micr-AzureCAT-mini-serve-mode
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!