API组合模式
- 查询每个服务API并组合结果。
- 注意点:
- API组合器需要使用响应式编程,并行调用较小rt。
- 优点:
- 简单直观。
- 缺点:
- 增加额开销。
- I/O。涉及多次rpc和查库。
- CPU。聚合查询结果,可能需要执行大规模数据内存链接。
- 可用性降低。受依赖服务的影响。
- 缺乏数据一致性。跨库查询,柔性事务下缺少一致性视图。
- 增加额开销。
CQRS模式
- 命令查询职责分离。使用事件维护从多个服务复制的只读视图。
- 微服务架构查询的问题。
- API组合模式查询分散的数据导致低效的内存链接。
- 拥有数据的服务没有以有效支持查询的表单或数据库存储。
- 隔离问题。拥有数据的服务不一定是实现查询的服务。
- 优点:
- 查询高效。无需内存链接或多次的rpc。
- 多个查询视图实现多种查询类型。
- 聚合事件数据流,保持最新的视图,解决事件溯源的主要查询限制。
- 进一步实现问题隔离。命令端追求一致性,查询端追求高吞吐。
- 缺点:
- 架构更复杂。
- 数据复制延迟。