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(事件溯源),可以用于事件回放处理,还原指定对象状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值