【微服務架構模式】微服務設計模式

高可用性、可擴展性、故障恢復能力和性能是微服務的特徵。您可以使用微服務架構模式來構建微服務應用程序,從而降低微服務失敗的風險。

模式分爲三層:

應用模式

應用程序模式解決了開發人員面臨的問題,例如數據分解、數據維護、測試、用戶界面和一些可觀察性模式。

讓我們回顧一下這些應用程序模式的基礎知識。

分解模式

選擇如何將單體系統分解爲服務

數據模式

測試模式

單個微服務更容易測試,因爲它們比單體應用程序小得多。在測試不同服務是否協同工作時,重要的是要避免使用同時檢查多個服務的複雜、緩慢和不穩定的端到端測試。

用戶界面模式

顯示與不同服務相對應的數據及其顯示方式是不同團隊的責任。

可觀察性模式

爲了有效地運行應用程序,瞭解其運行時行爲並解決請求失敗等問題非常重要。

應用基礎架構模式

它們適用於也會影響開發的基礎設施問題,例如通信、可觀察性、可靠性和安全模式。

橫切關注點模式

我們必須先了解關注點,才能理解橫切關注點。關注點是基於其功能的系統的一部分。有兩種擔憂:

通訊模式

基於微服務的應用程序是分佈式系統。微服務架構嚴重依賴進程間通信(IPC)。

可觀察性模式

可觀察性模式提供了對應用程序行爲方式的洞察。診斷微服務架構的問題要困難得多。在最終將響應返回給客戶端之前,請求可以在多個服務之間反彈。

可靠性模式

當服務不可用時,如何保證它們之間的可靠通信?

安全模式

用戶通常由微服務架構中的 API 網關進行身份驗證。然後必須將用戶的身份和角色傳遞給它調用的服務。一個常見的解決方案是使用訪問令牌模式。API 網關將訪問令牌(例如 JWT(JSON Web 令牌))傳遞給服務,服務可以驗證令牌並獲取有關用戶的信息。

基礎架構模式

它們解決了與開發之外的基礎設施有關的問題,例如部署、發現和與外部 API 的通信模式。

部署模式

部署微服務有幾種模式。傳統上,服務以特定語言的方式打包。有兩種現代部署方法。

發現模式

通常,服務需要相互通信。單體應用程序使用語言級方法或過程調用來調用其服務。傳統上,分佈式系統在固定的、衆所周知的位置(主機和端口)運行,因此可以通過 HTTP/REST 或其他一些機制訪問服務。然而,大多數基於微服務的現代應用程序都在虛擬化或容器化環境中運行,其中服務實例的數量及其位置會動態變化。

外部 API 模式

微服務提供的 API 粒度通常與客戶端所需的不同。微服務提供的 API 通常是細粒度的,因此客戶端必須與多個服務交互。每個客戶端需要不同數量的數據,網絡性能對每個客戶端的影響也不同。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/erNCS6w3L5GMKh4Ari9AQg