CQRS与事件溯源模式
CQRS : Command Query Responsibility Segregation
命令查询分离模式,指将对数据库的增删改操作和查询操作分离,后续可针对查询类业务和命令类业务分开处理分开优化
分离可以在上层进行,底层仍然共享表也是可以的。
另外也可以创建数据宽表来适应查询的业务。
分离后的数据可以存在不同的数据库中,查询的数据由命令模式同步过来。
对查询有性能要求的场景可以将数据存入缓存或是mongodb等nosql数据库。
在此基础上可以使用事件溯源模式对操作进行统一管理,有了溯源就可以对事件进行重放,出现异常的时候也能够更好的排查问题。
分离以后推荐使用mq对命令事件进行发布,并需要同时完成对失败和重复的消息进行处理,这样整个流程才算完整。
建议需要对读写分离时考虑使用CQRS,或是在团队进行拆分组成专门编写复杂业务写操作或高频查询时使用。
优点
- 使用此模式后可以将读写拆分开,这样在复杂查或者写的时候只需要关注尽可能少的内容。
- 读写负载可以独立缩放
- 可以针对读写操作分别进行优化
- 更易确保仅对需要更新的实体进行写操作
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2016-08-01 代理设计模式