絞殺者分解



問題陳述

微服務架構將應用程式構建為一組松耦合的微服務,每個服務都應以敏捷的方式獨立開發,以實現持續交付/部署。當使用微服務架構構建大型複雜應用程式時,主要問題是如何設計松耦合的微服務,或者如何將大型應用程式分解成小型松耦合的服務?

解決方案

我們可以使用絞殺者模式來定義微服務。絞殺者應用程式有兩種型別的服務:

  • 現有行為 - 這些服務體現了以前駐留在單體中的行為。

  • 新功能 - 這些服務實現了新的行為。

因此,隨著開發時間的推移,微服務會增加,而單體則會隨著功能從單體遷移到絞殺者應用程式而縮小。

示例

考慮一個線上書店的例子。最初,我們只開發了圖書目錄管理服務,其他服務由遺留的單體應用程式支援。在開發過程中,越來越多的服務被開發出來,功能也從單體中遷移出去。

Decompose By Strangler Design Pattern

因此,當開發新服務時,單體會被“絞殺”,舊元件會被停用,新的微服務會被部署並支援新功能。絞殺者模式可以透過三個步驟實現:

  • 轉換 - 獨立開發微服務以實現單體的特定功能。

  • 共存 - 單體和微服務都將工作。使用者可以從這兩個元件訪問功能。

  • 消除 - 一旦新開發的功能準備好投入生產,就從單體中移除該功能。

優勢

  • 測試驅動開發 - 由於服務是分塊開發的,因此我們可以將 TDD 用於業務邏輯並確保程式碼質量。

  • 獨立團隊 - 團隊可以並行地處理單體和微服務,從而形成強大的交付機制。

廣告

© . All rights reserved.