时序图

消息队列异步处理时序图模板

用户、订单服务、消息队列、库存服务、通知服务五方的异步处理时序图:下单后发消息立即返回,消费者各自处理并确认,失败重试后进入死信队列。讲解异步解耦、写架构方案和面试准备时改成自己的业务,免费导出 PNG、SVG、Word、PPT。

通知服务库存服务消息队列订单服务通知服务库存服务消息队列订单服务par[库存消费][通知消费]opt[消费失败]用户提交订单保存订单发布订单已创建立即返回下单成功投递消息扣减库存确认投递消息发送短信与站内信确认未确认按间隔重试超过次数进入死信队列用户
预览用的是「朱砂」主题,打开编辑器后可以换

适用场景

给团队讲「为什么要用消息队列」、写架构方案里的异步链路、准备后端面试时使用。图上能看到三件事:用户不用等下游处理完就拿到结果;两个消费者互不影响;失败会重试,超过次数进入死信队列等人工处理。

怎么改成你的

  • 把订单、库存、通知换成你的业务,例如注册后发邮件、上传后转码。
  • 需要说明幂等的,在消费者处理前加一条「判断消息是否已处理」。
  • 要保证「保存订单」和「发消息」同时成功,可以加一个本地消息表的参与者。

Mermaid 代码

message-queue-sequence.mmd
sequenceDiagram
    actor U as 用户
    participant O as 订单服务
    participant Q as 消息队列
    participant S as 库存服务
    participant N as 通知服务
    U->>O: 提交订单
    O->>O: 保存订单
    O->>Q: 发布订单已创建
    O-->>U: 立即返回下单成功
    par 库存消费
        Q->>S: 投递消息
        S->>S: 扣减库存
        S-->>Q: 确认
    and 通知消费
        Q->>N: 投递消息
        N->>N: 发送短信与站内信
        N-->>Q: 确认
    end
    opt 消费失败
        S-->>Q: 未确认
        Q->>S: 按间隔重试
        Q->>Q: 超过次数进入死信队列
    end

让 AI 按这个结构生成一份

把下面这段发给豆包、DeepSeek、Kimi 或元宝,再把它的回复整段粘贴到编辑器,会自动识别其中的代码。

prompt.txt
请用 Mermaid 的 sequenceDiagram 语法画一张消息队列异步处理时序图:参与者有用户、订单服务、消息队列、库存服务、通知服务;用户提交订单,订单服务保存订单后向队列发布订单已创建,并立即返回下单成功;用 par 表示库存服务和通知服务并行消费并确认;再用 opt 表示消费失败时未确认、按间隔重试、超过次数进入死信队列。只输出 mermaid 代码块。

常见问题

par 是什么意思?

par 表示并行,and 分隔并行的各段,end 结束。图上会画成一个框,里面的几段同时发生。

消息丢了或重复了怎么办?

通常靠发送确认、消费确认和幂等处理三者配合。图里画了确认与重试,幂等可以按上面的提示加一条消息。

消息的顺序能保证吗?

取决于队列的类型和配置。需要严格顺序时用同一个分区键或顺序队列,并在图上注明;多数通知类场景不要求顺序。

同类模板

全部模板

更新于 2026-11-11