常見問答集 - AWS 規範性指導

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

常見問答集

本節提供在微服務中啟用資料持久性之常見問題的答案。

作為現代化旅程的一部分,我何時可以現代化單體資料庫?

當您開始將單體應用程式分解為微服務時,您應該專注於現代化單體資料庫。請確定您建立策略,將資料庫分割成多個與應用程式一致的小型資料庫。

我可以保留多個微服務的舊版單體資料庫嗎?

為多個微服務保留共用的單一資料庫會產生緊密的耦合,這表示您無法獨立部署微服務的變更,而且必須在微服務之間協調所有結構描述變更。雖然您可以使用關聯式資料存放區做為整體資料庫,但 NoSQL 資料庫可能是某些微服務的最佳選擇。

在設計微服務架構的資料庫時,我應該考慮什麼?

您應該根據符合應用程式功能的網域來設計應用程式。請務必評估應用程式的 功能,並決定是否需要關聯式資料庫結構描述。如果 NoSQL 資料庫符合您的需求,您也應考慮使用它。

維持不同微服務間資料一致性的常見模式是什麼?

最常見的模式是使用事件驅動的架構

如何維持交易自動化?

在微服務架構中,交易由多個由不同微服務處理的本機交易組成。如果本機交易失敗,您需要復原先前已完成的成功交易。您可以使用 Saga 模式來避免這種情況。

我是否必須為每個微服務使用單獨的資料庫?

微服務架構的主要優點是耦合鬆動。每個微服務的持久性資料都必須保持私有,並且只能透過微服務 API 存取。如果您的微服務共用相同的資料庫,則必須仔細評估資料結構描述的變更。

如果微服務持續資料都共用單一資料庫,我該如何保持其私密性?

如果您的微服務共用關聯式資料庫,請確定每個微服務都有私有資料表。您也可以建立個別微服務私有的個別結構描述。