事件驱动架构中的事件与消息总线
1. 事件驱动架构概述
在构建系统时,设计模块间的通信方式比关注模块内部属性和行为更为关键。当需要编写多个领域模型来管理业务流程时,应用程序需与系统其他部分交换信息。常见做法是使用通过 HTTP API 集成的微服务,但处理不当会导致系统混乱。
我们将探讨如何把之前的技术扩展到分布式系统,通过异步消息传递的小组件来构建系统。还会介绍以下模式和技术:
- 领域事件 :触发跨越一致性边界的工作流。
- 消息总线 :提供从任何端点调用用例的统一方式。
- CQRS :分离读写操作,避免在事件驱动架构中做出尴尬的妥协,提升性能和可扩展性。
另外,会引入依赖注入框架来整理代码。
2. 事件与消息总线示例
以库存不足时发送通知给采购团队为例,最初产品负责人要求通过电子邮件发送警报。我们先看简单粗暴的实现方式及其问题,再介绍如何使用领域事件模式和消息总线模式解决问题。
代码可从 GitHub 获取:
git clone https://github.com/cosmicpython/code.git
cd code
git checkout chapter_08_events_and_message_bus
# 或跟随编码,切换到上一章
git checkout chapter_07_aggregate
超级会员免费看
订阅专栏 解锁全文
1730

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



