Skip to content

基于 Kafka 的 MSA 示例

本示例包含发布订单事件的订单服务,以及消费事件并更新库存的库存服务。

架构

事件发布

订单控制器在创建订单后发布领域事件:

go
ctx.EventBus().Publish(OrderCreated{OrderID: order.ID, ProductID: req.ProductID})

事件消费

库存服务注册消费者处理器。消费者同样通过 Spine 的执行管道执行,因此可使用依赖注入、参数解析和拦截器。

go
app.Consumers(stock.NewOrderCreatedConsumer)

运行

先启动 Kafka 与库存服务,再启动订单服务。向订单 API 发送创建请求后,Kafka 将事件传递给库存服务。

要点

事件发布端与消费端独立部署;事件类型是明确的契约;Kafka 配置决定生产与消费行为。