微服务架构中的 CQRS 与分布式消息传递技术解析
1. CQRS 架构基础
CQRS(Command Query Responsibility Segregation)是一种用于改善微服务内部架构的模式,它将业务实体的读写操作分离,从而显著提升微服务的可扩展性。
- 事件处理程序(Event Handler) :负责接收并处理事件。多个事件处理程序可以订阅特定类型的事件。部分处理程序可能会更新数据源或用于查询的物化视图,而其他处理程序则可能向外部接口发送消息,甚至创建新的命令。
- 查询(Query) :控制器将读事务路由到查询管理器,查询管理器在实体的特定物化视图上执行查询操作。
CQRS 架构的元模型解决了架构中的一些问题,例如命令 - 事件 - 命令循环:当聚合的状态因命令而改变时,会生成领域事件,这些事件被注入事件总线,感兴趣的事件处理程序会消费并处理这些事件,有时处理过程会创建新的命令,从而形成循环。事件总线采用发布 - 订阅语义,这使得可以在不影响现有组件的情况下添加更多事件处理程序,为应用程序的未来扩展提供了便利。
值得注意的是,基于 CQRS 的架构并不强制要求采用微服务架构,反之亦然。但将两者结合可以为软件架构师提供独特的优势,使应用程序具有极致的可扩展性和灵活性。
2. 利用事件进行命令查询分离
通过对 CQRS 元模型进行微调,可以将应用程序实体的读写部分分离到不同的技术业务领域。这里的“技术”指的是分离到不同的进程空间,“领域”则指的是分离到不同的读写事务需求。
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



