1 整体架构介绍
原文地址:https://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html
什么是CQRS(命令查询分离)
对应更改数据的操作,我们不返回数据,对应查询数据的操作,我们不更改数据
CQRS将系统分为命令与查询两个部分,我们暂且称为 命令项目 查询项目
命令:不返回任何结果(void),但会改变对象的状态。
查询:返回结果,但是不会改变对象的状态
CQRS与数据库
命令项目使用主数据库,用于写入数据
查询项目使用从数据库,用于查收数据
CQRS与架构
命令项目使用领域驱动设计
查询项目使用mvc架构(或其他架构都可以)
CQRS与Event Sourcing
CQRS命令项目需要使用Event Sourcing(事件源)架构才能发挥其优势
CQRS概念
Command(命令):用于描述某种命令的一个类
Command Bus(命令总线):所有发生的命令都应该发送到命令总线上,命令总线根据事件的类型,调用对应的命令处理器,图中没有画出
Command Handler(命令处理器):命令处理器用于处理某种类型的命令,当某种类型的命令被发送到命令总线上时,处理该类型命令的命令处理器为被调用
Event(事件):用于描述某种事件的一个类
Event Bus(事件总线):如果事件发生,应该将其发生到时间总线上,事件总线根据事件的类型,调用对应的事件处理器
Event Handler(事件处理器):用于处理某种事件
Event Store(事件存储):对应概念 Event Sourcing(事件溯源),可以用于事件回放处理,还原指定对象状态
还没有评论,来说两句吧...