对比
| 维度 | 命令侧 | 查询侧 |
|---|---|---|
| 职责 | 校验、变更、发布事件 | 按查询需求组织数据 |
| 模型 | 领域模型,保证不变量 | 面向视图的宽表或索引 |
| 一致性 | 强一致 | 通常最终一致 |
| 扩展 | 写扩展相对困难 | 读可多副本水平扩展 |
CQRS 并非默认选项:读写比例接近且模型简单时,分离带来的同步与运维成本可能得不偿失。
把写模型(命令)与读模型(查询)分离,各自可采用不同结构与存储;读侧可针对查询优化,写侧专注于一致性与业务规则,代价是最终一致与复杂度。
| 维度 | 命令侧 | 查询侧 |
|---|---|---|
| 职责 | 校验、变更、发布事件 | 按查询需求组织数据 |
| 模型 | 领域模型,保证不变量 | 面向视图的宽表或索引 |
| 一致性 | 强一致 | 通常最终一致 |
| 扩展 | 写扩展相对困难 | 读可多副本水平扩展 |