15、事件驱动架构与 CQRS:构建灵活可靠的微服务系统

事件驱动架构与 CQRS:构建灵活可靠的微服务系统

1. 事件驱动架构引入

在构建微服务系统时,仅通过 Web API 与其他系统交互存在局限性。例如,我们不清楚如何接收“批次数量变更”事件,也不知如何向外通知重新分配情况。若要了解发货延迟、数量修改等信息,以及告知仓库系统订单已分配并需发货,该如何操作呢?

事件驱动架构为解决这些问题提供了思路。系统的核心可视为消息处理器,它能通过外部消息总线(如 Redis 发布/订阅队列)接收外部事件,也能以事件形式将输出发布回外部。具体代码可从以下仓库获取:

git clone https://github.com/cosmicpython/code.git 
cd code 
git checkout chapter_11_external_events 
# 若要跟着编码,可切换到上一个分支
git checkout chapter_10_commands

2. 分布式泥球架构问题剖析

2.1 基于名词拆分系统的弊端

许多工程师在构建微服务架构时,习惯将系统按名词拆分。例如,系统中有库存批次、订单、产品和客户等名词,就为每个“事物”创建一个关联服务,通过 HTTP API 进行交互。

以用户购物流程为例:用户访问网站选择商品,添加到购物篮时预留库存,订单完成后确认预留并通知仓库发货。若这是客户的第三次订单,还需将其标记为 VIP。此流程中的每个步骤都可视为系统命令,如 ReserveStock ConfirmReservatio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值