时序图演示

时序图演示

Mermaid 时序图用于展示系统间的交互、API 调用等时间序列关系。

基础时序图

sequenceDiagram
    participant 用户
    participant 浏览器
    participant 服务器
    
    用户->>浏览器: 输入 URL
    浏览器->>服务器: HTTP 请求
    服务器->>服务器: 处理请求
    服务器-->>浏览器: HTTP 响应
    浏览器->>浏览器: 渲染页面
    浏览器-->>用户: 显示页面

PowerWiki 工作流程

sequenceDiagram
    participant 用户
    participant 浏览器
    participant PowerWiki
    participant Git仓库
    
    用户->>浏览器: 访问 Wiki
    浏览器->>PowerWiki: 请求文章
    PowerWiki->>PowerWiki: 检查缓存
    alt 缓存存在
        PowerWiki-->>浏览器: 返回缓存内容
    else 缓存不存在
        PowerWiki->>Git仓库: 拉取最新内容
        Git仓库-->>PowerWiki: 返回 Markdown
        PowerWiki->>PowerWiki: 解析 Markdown
        PowerWiki->>PowerWiki: 生成 HTML
        PowerWiki-->>浏览器: 返回 HTML
    end
    浏览器->>浏览器: 渲染页面
    浏览器-->>用户: 显示文章

用户认证流程

sequenceDiagram
    participant 用户
    participant 客户端
    participant 认证服务
    participant 数据库
    
    用户->>客户端: 输入用户名密码
    客户端->>认证服务: 发送登录请求
    认证服务->>数据库: 查询用户
    database->>认证服务: 返回用户信息
    alt 用户存在
        认证服务->>认证服务: 验证密码
        alt 密码正确
            认证服务->>认证服务: 生成 Token
            认证服务-->>客户端: 返回 Token
            客户端-->>用户: 登录成功
        else 密码错误
            认证服务-->>客户端: 返回错误
            客户端-->>用户: 显示错误信息
        end
    else 用户不存在
        认证服务-->>客户端: 返回错误
        客户端-->>用户: 用户不存在
    end

微服务调用链

sequenceDiagram
    participant 客户端
    participant API网关
    participant 用户服务
    participant 订单服务
    participant 支付服务
    participant 数据库
    
    客户端->>API网关: 创建订单请求
    API网关->>用户服务: 验证用户
    用户服务->>数据库: 查询用户
    数据库-->>用户服务: 返回用户信息
    用户服务-->>API网关: 用户有效
    
    API网关->>订单服务: 创建订单
    订单服务->>数据库: 保存订单
    数据库-->>订单服务: 订单已保存
    
    订单服务->>支付服务: 发起支付
    支付服务->>支付服务: 处理支付
    支付服务-->>订单服务: 支付成功
    
    订单服务-->>API网关: 订单创建成功
    API网关-->>客户端: 返回订单信息

缓存更新流程

sequenceDiagram
    participant 应用
    participant 缓存
    participant 数据库
    
    应用->>缓存: 查询数据
    alt 缓存命中
        缓存-->>应用: 返回数据
    else 缓存未命中
        应用->>数据库: 查询数据
        数据库-->>应用: 返回数据
        应用->>缓存: 写入缓存
        缓存-->>应用: 缓存成功
        应用-->>应用: 返回数据
    end

分布式事务

sequenceDiagram
    participant 协调者
    participant 服务A
    participant 服务B
    participant 服务C
    
    协调者->>服务A: 准备事务
    协调者->>服务B: 准备事务
    协调者->>服务C: 准备事务
    
    服务A-->>协调者: 准备完成
    服务B-->>协调者: 准备完成
    服务C-->>协调者: 准备完成
    
    alt 所有服务都准备好
        协调者->>服务A: 提交事务
        协调者->>服务B: 提交事务
        协调者->>服务C: 提交事务
        
        服务A-->>协调者: 提交成功
        服务B-->>协调者: 提交成功
        服务C-->>协调者: 提交成功
    else 某个服务准备失败
        协调者->>服务A: 回滚事务
        协调者->>服务B: 回滚事务
        协调者->>服务C: 回滚事务
        
        服务A-->>协调者: 回滚成功
        服务B-->>协调者: 回滚成功
        服务C-->>协调者: 回滚成功
    end

异步消息处理

sequenceDiagram
    participant 生产者
    participant 消息队列
    participant 消费者1
    participant 消费者2
    
    生产者->>消息队列: 发送消息
    消息队列-->>生产者: 消息已接收
    
    消息队列->>消费者1: 分发消息
    消息队列->>消费者2: 分发消息
    
    消费者1->>消费者1: 处理消息
    消费者2->>消费者2: 处理消息
    
    消费者1-->>消息队列: 处理完成
    消费者2-->>消息队列: 处理完成
    
    消息队列->>消息队列: 删除消息

WebSocket 实时通信

sequenceDiagram
    participant 客户端
    participant 服务器
    
    客户端->>服务器: WebSocket 连接
    服务器-->>客户端: 连接成功
    
    loop 实时通信
        客户端->>服务器: 发送消息
        服务器-->>客户端: 广播消息
        服务器->>客户端: 推送更新
        客户端-->>服务器: 确认接收
    end
    
    客户端->>服务器: 关闭连接
    服务器-->>客户端: 连接已关闭

提示: 时序图适合展示系统间的交互、API 调用、业务流程等。使用箭头表示消息流向,虚线表示返回。

更新时间:2026年2月24日