1、前言
使用微服務時,難免會涉及到不同服務之間跨庫的數據關聯,對於簡單的數據關聯可以在業務代碼中進行關聯;但是對複雜的條件關聯查詢如何處理,這是一個複雜的問題。
2、以下爲微服務中複雜數據關聯的一種解決方式
CQRS:Command Query Responsibility Segregation,命令查詢職責分離
DDD:Domain-Driven Design 領域驅動設計
通過CQRS將命令與查詢進行分離,然後針對具體的領域進行數據的組裝然後保存。
具體的流程可參考流程圖,較爲形象地說明以上的解決方案。
可簡單的描述如下:
前端數據更新(增刪改)請求=》後臺更新數據到數據庫=》同時發送數據到消息隊列=》具體的相關領域模型訂閱中間件消息=》收到消息後組裝成所需的數據=》保存到相應的存儲介質中=》前端根據所需內容進行相應的數據展示