[转]基于CQRS的架构在答题PK小游戏中的实践案例
1. 1. 前言 领域驱动设计(Domain-Driven Design,下文简称 DDD)在微服务时代成为了风口话题,而在 DDD 领域,我们常常看到命令查询与职责分离(Command and Query Responsibility Segregation,下文简称 CQRS)架构的身影。CQRS 架构由于本身只是一个读写分离的思想,实现方式多种多样。比如数据存储不分离,仅仅只是代码层面读写分离,也是 CQRS 的体现;然后数据存储的读写分离,Command 端负责数据存储,Query 端负责数据查询,Query 端的数据通过 Command 端产生的 Event 来同步,这种也是 CQRS 架构的一种实现。本文介绍的是后者这种实现方式的 CQRS 架构在研发实时答题 PK 系统中的实践,此外,我们还会引入事件溯源(Event Sourcing)模式,本文认为结合事件溯源模式,可以更好发挥 CQRS 架构的价值。