S 型hared-database-per-service 圖案 - AWS 規範指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

S 型hared-database-per-service 圖案

在該 shared-database-per-service 模式中,多個微服務共享相同的數據庫。在採用此模式之前,您需要仔細評估應用程式架構,並確保避免使用熱表格 (在多個微服務之間共用的單一資料表)。您的所有資料庫變更也必須向後相容;例如,只有當所有微服務的目前和舊版都未參考物件時,開發人員才能卸除資料行或資料表。

在下圖中,所有微服務都會共用保險資料庫,而 IAM 政策則提供對資料庫的存取權。這會建立開發時間耦合;例如,「銷售」微服務中的變更需要使用「客戶」微服務協調結構描述變更。這種模式不會減少開發團隊之間的依賴關係,並引入了運行時耦合,因為所有微服務共享相同的數據庫。例如,長時間運行的「銷售」交易可以鎖定「客戶」表,這會阻止「客戶」交易。

S 型hared-database-per-service 圖案

你應該考慮使用這種模式,如果:

  • 您不希望對現有代碼庫進行太多重構。

  • 您可以使用提供原子性、一致性、隔離和持久性 (ACID) 的交易來強制執行資料一致性。

  • 您只想維護和操作一個數據庫。

  • 實作 database-per-service 模式很困難,因為您現有的微服務之間的相互依存關係。

  • 您不想完全重新設計現有的資料層。