- Command Query Responsibility Seperation,命令查询分离
- Event Sourcing
- 介绍
- 修改只记事件(日志), 查询时计算
- CQ接口分离、代码分离,分别设计
- 优点
- 读操作和写操作独立伸缩,以支持不同的用量模型
- 缺点
- 消息驱动实现困难
- 健壮的事件库非常关键
- 所有操作异步化
- 比CRUD风格复杂,不要用CQRS做顶层架构
- 消息驱动实现困难
- 概念
- 实现注意
- 加入弹性
- 事件存储
- 幂等性和标记处理
- 发送端
- 未保存状态崩溃重传
- 已保存状态崩溃重传
- 接收端
- 处理未标记重复处理
- 超时重复处理
- 特别状态不能安全地执行
- 处理方式
- 幂等性
- 确保发送成功
- 发送端
- 优化性能
- 界面优化
- 基础设施优化
- 异步收发
- 命令处理优化
- 进程内部处理
- 使用快照和事件源
- 保存aggregate最近状态
- 事件并行发布
- 消息过滤
- 缓存信息
- 总线划分
- 牢靠的消息和保存基础设施
- 系统化的流程管理器
- 加入弹性