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