

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

# Shared-database-per-service 模式
<a name="shared-database"></a>

在 shared-database-per-service 模式中，數個微服務共用相同的資料庫。您需要在採用此模式之前仔細評估應用程式架構，並確定避免熱資料表 （多個微服務寫入的單一資料表）。所有資料庫變更也必須回溯相容；例如，開發人員只有在所有微服務目前和先前版本未參考物件時，才能捨棄資料欄或資料表。

在下圖中，所有微服務都會共用保險資料庫，而 IAM 政策會提供資料庫的存取權。這會建立開發時間耦合；例如，「銷售」微服務的變更需要與「客戶」微服務協調結構描述變更。此模式不會減少開發團隊之間的相依性，並引進執行期耦合，因為所有微服務共用相同的資料庫。例如，長時間執行的「銷售」交易可以鎖定「客戶」資料表，這會封鎖「客戶」交易。

![Shared-database-per-service 模式](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modernization-data-persistence/images/enabling-diagram7.png)


在以下情況下，您應該考慮使用此模式：
+ 您不希望對現有程式碼庫進行過多重構。
+ 您可以使用提供原子性、一致性、隔離和耐久性 (ACID) 的交易來強制執行資料一致性。
+ 您想要僅維護和操作一個資料庫。
+ 由於現有微database-per-service模式相當困難。
+ 您不想完全重新設計現有的資料層。