本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
常見問答集
本節提供在微服務中啟用資料持久性之常見問題的答案。
作為現代化旅程的一部分,我何時可以現代化單體資料庫?
當您開始將單體應用程式分解為微服務時,您應該專注於現代化單體資料庫。請確定您建立策略,將資料庫分割成多個與應用程式一致的小型資料庫。
我可以保留多個微服務的舊版單體資料庫嗎?
為多個微服務保留共用的單一資料庫會產生緊密的耦合,這表示您無法獨立部署微服務的變更,而且必須在微服務之間協調所有結構描述變更。雖然您可以使用關聯式資料存放區做為整體資料庫,但 NoSQL 資料庫可能是某些微服務的最佳選擇。
在設計微服務架構的資料庫時,我應該考慮什麼?
您應該根據符合應用程式功能的網域來設計應用程式。請務必評估應用程式的 功能,並決定是否需要關聯式資料庫結構描述。如果 NoSQL 資料庫符合您的需求,您也應考慮使用它。
維持不同微服務間資料一致性的常見模式是什麼?
最常見的模式是使用事件驅動的架構
如何維持交易自動化?
在微服務架構中,交易由多個由不同微服務處理的本機交易組成。如果本機交易失敗,您需要復原先前已完成的成功交易。您可以使用 Saga 模式來避免這種情況。
我是否必須為每個微服務使用單獨的資料庫?
微服務架構的主要優點是耦合鬆動。每個微服務的持久性資料都必須保持私有,並且只能透過微服務 API 存取。如果您的微服務共用相同的資料庫,則必須仔細評估資料結構描述的變更。
如果微服務持續資料都共用單一資料庫,我該如何保持其私密性?
如果您的微服務共用關聯式資料庫,請確定每個微服務都有私有資料表。您也可以建立個別微服務私有的個別結構描述。