架构

事件驱动架构模板

生产者、Kafka 主题、消费者、死信队列和分析

事件驱动架构模板预览

模板内容

节点数
10
节点包
技术栈数据
类别
架构

Free 套餐即可使用:每图 15 个图表节点 + 150 个便签、文本、贴纸和思维导图主题。

在事件驱动架构中,服务不直接互相调用,而是宣布发生了什么,由其他服务做出反应。这个模板展示 checkout-service 向事件代理的 orders 主题发布 OrderPlaced,payment-service 和 inventory-service 订阅这个主题。

随后 payment-service 向 payments 主题发布 PaymentCaptured,由 shipping-service 和 notification-service 消费。无法处理的事件进入死信队列,分析数据仓库接收所有事件。生产者在左侧,代理及其主题在中间,消费者在右侧,整个流程从左往右读。

适用场景

  • 设计服务如何响应订单、支付和发货等业务事件。
  • 展示哪个团队发布哪个事件,以及谁依赖它。
  • 审查错误处理:重试、死信队列和重放。
  • 向熟悉请求-响应式 API 的人讲解异步系统。

使用步骤

  1. 按你的业务领域重命名主题和事件,使用 OrderPlaced 这类过去时的事件名。

  2. 从 技术栈节点包添加生产者和消费者,并用虚线把它们连到主题。

  3. 为每个可能失败的消费者添加死信队列,并注明分析数据仓库保留哪些事件。

  4. 与每个发布或消费事件的团队分享这张图;主题或事件变化时保存一个版本。

常见问题

这个模板只适用于 Kafka 吗?

不是。代理框架写的是 Kafka,因为它很常见,但同一张图也适用于 RabbitMQ、Amazon EventBridge、Google Cloud Pub/Sub 或 Azure Service Bus:重命名框架和主题即可。

什么是死信队列?

死信队列保存消费者在重试之后仍无法处理的事件,这样事件不会丢失,也不会堵住后面的事件。团队会检查这些事件,修复原因后再重放。

可以在一张图里同时展示事件和请求流吗?

可以。直接调用用实线,事件用虚线;也可以从微服务模板开始,它同时展示了 API 网关和事件总线。

相关模板

相关用例

云架构图

一分钟打开画布

使用 Google 或 GitHub 登录。单席位免费,团队加入后再升级。