cqrs 和 event sourcing 简介

2020-07-10  本文已影响0人  wwq2020

什么是 cqrs

Command Query Responsibility Segregation,就是把 command 和 query 分离的一种模式.
command 是会引起副作用的操作(新增,更新,删除这类),query 是查询操作.

优点

这样把读写进行了分离,可以进行针对性的选择.

缺点

这样的系统必然只能是最终一致性的,如果系统要求实时性很高,那是不适合的

什么是 event sourcing

event sourcing 就是把所有操作记录相应的事件(类似于数据库的 wal),如果要读取相应的数据,那么就对这些操作记录进行重放

针对读取性能较差的问题,也是跟数据库的处理方式类似,添加 checkpoint

优点

可以很直观的看到数据的变更历史

缺点

读取性能较差

总结

一种实现方式就是 mysql+kafka+es
mysql 记录 command 记录,通过 kafka 同步相应的操作(新增,更新,删除这类)事件,然后 es 提供 query

上一篇 下一篇

猜你喜欢

热点阅读