簡體   English   中英

跨多個微服務共享數據

[英]Shared data across multiple microservices

我有以下情況:

您可以通過application-service創建一個應用程序。 在創建應用程序之前,需要檢查特定信息。 該信息是分布式的,只能通過用戶服務和產品服務訪問。

第一個想法是通過服務總線通過所有服務發送消息,並通過所有必要的數據對其進行擴展,並在應用程序服務中最后再次處理數據:

->應用程序服務->用戶服務->產品服務->應用程序服務

第二個想法是將所有相關數據冗余存儲在所有服務中。 意味着應用程序服務具有用戶和產品數據的副本。

兩種想法都不對。

有沒有更好的方法?

在您所描述的面向服務的體系結構中,在多個服務中復制數據是完全正常的,每個服務都擴展了特定於該服務的核心實體。

不過,我建議您重新考慮您的服務范圍。 服務是特定業務流程的技術授權。 服務並非旨在與業務數據保持一致。

例如,您的Product ServiceUser Service聽起來像業務數據,而Application-Service聽起來范圍太廣,而又不了解更多信息。

考慮一個需要有關產品信息的Order-Service 它可能會訂閱來自Product-Service ProductCreated事件,以使用產品信息填充自身,盡管可能只是一個ProductID。 Order-Service不需要知道產品的名稱,描述,價格(可以在Billing服務中找到)等。

由於服務是業務流程的唯一授權,因此它也應該擁有用戶界面。 復合UI模式允許將包含來自多個服務的組件的單個頁面放出來。 Application-Service將托管頁面和將組件拉在一起的膠水。 有關這方面的更多信息,我發現Micro Frontends很不錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM