时序图:异步消息与回调
简介 / Introduction
时序图(Sequence Diagram)用于展示对象之间按时间顺序交互的消息流。同步消息(sync)等待对方返回,而异步消息(async)发送后不阻塞,常用于 HTTP 请求、事件驱动架构和微服务调用场景。本文用同一业务场景,对比 PlantUML 与 Mermaid 两种引擎的语法差异。
PlantUML 版
1 | @startuml |
PlantUML 使用 -> 表示同步消息,--> 表示返回(虚线),通过 activate/deactivate 控制参与者的生命线。异步消息只需将实线箭头改为普通 ->,无需特殊关键字。回调用虚线回执箭头 --> 明确表达。
Mermaid 版
1 | sequenceDiagram |
Mermaid 语法更紧凑:箭头 ->>+ 表示进入激活状态,-->>- 表示离开激活状态并返回。异步消息即普通实线箭头 ->(无 +/- 标记则不改变激活栈)。回调用虚线箭头 -->> 表达,无需额外关键字。
对比 / Side-by-side
| 特性 | PlantUML | Mermaid |
|---|---|---|
| 同步消息 | -> |
->>+(激活入口) |
| 异步消息 | ->(无特殊标记) |
-> |
| 返回消息 | --> |
-->>- |
| 激活/销毁 | activate / deactivate |
箭头末的 + / - |
| 回调表示 | -->(虚线回执) |
-->>(虚线返回) |
| 注释方式 | note over |
%% 行注释 |
小结 / Wrap-up
两种引擎均可清晰表达异步与回调语义。PlantUML 语法更冗长但表达能力更强,适合复杂交互;Mermaid 简洁,适合文档嵌入与快速原型。选择时可依据交互复杂度与团队工具链习惯决定。
- 标题: 时序图:异步消息与回调
- 作者: puml.online
- 创建于 : 2026-08-28 09:00:00
- 更新于 : 2026-08-28 01:01:15
- 链接: https://puml.online/blog/sequence-diagram-async-messages/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。