1、前言
使用微服务时,难免会涉及到不同服务之间跨库的数据关联,对于简单的数据关联可以在业务代码中进行关联;但是对复杂的条件关联查询如何处理,这是一个复杂的问题。
2、以下为微服务中复杂数据关联的一种解决方式
CQRS:Command Query Responsibility Segregation,命令查询职责分离
DDD:Domain-Driven Design 领域驱动设计
通过CQRS将命令与查询进行分离,然后针对具体的领域进行数据的组装然后保存。
具体的流程可参考流程图,较为形象地说明以上的解决方案。
可简单的描述如下:
前端数据更新(增删改)请求=》后台更新数据到数据库=》同时发送数据到消息队列=》具体的相关领域模型订阅中间件消息=》收到消息后组装成所需的数据=》保存到相应的存储介质中=》前端根据所需内容进行相应的数据展示