使用mermaid 语言绘画时序图和链路图

给大家展示一下效果,

官方地址:https://mermaid.nodejs.cn/

官方开发地:https://mermaid.nodejs.cn/intro/#google_vignette

bash 复制代码
graph LR
    %% ==================== 样式定义(完全保留) ====================
    classDef user fill:#E1F5FE,stroke:#0288D1;
    classDef app fill:#E8F5E9,stroke:#388E3C;
    classDef data fill:#F3E5F5,stroke:#8E24AA;
    classDef infra fill:#FFF3E0,stroke:#FB8C00;
    classDef biz fill:#FFEBEE,stroke:#E53935,dashed;
    classDef screen fill:#FCE4EC,stroke:#EC407A;
    classDef middleware fill:#DCE775,stroke:#AFB42B;
    classDef notification fill:#FF8A65,stroke:#E64A19;
    classDef external fill:#B39DDB,stroke:#5E35B1;

    %% ==================== 外部系统节点(完全保留) ====================
    xx数据库:::external
    yy数据库:::external
    钉钉告警:::notification

    %% ==================== 数据采集源(完全保留) ====================
    subgraph 数据采集["多源数据采集"]
        MQ消费数据:::middleware
        API接口服务:::app
        库间迁移工具:::middleware
    end

    %% ==================== 用户层(完全保留) ====================
    subgraph 用户层["用户终端"]
        生产设备:::user
        微信小程序:::user
        监管工作台:::user
        消费者APP:::user
        企业录入终端:::user
    end

    %% ==================== 应用层(完全保留) ====================
    subgraph 应用层["应用服务"]
        SpringBoot核心服务:::app
        溯源码管理:::app
        数据治理服务:::app
        任务调度服务:::app
    end

    %% ==================== 数据层修改点 ====================
    subgraph 数据层["数据服务"]
        subgraph 达梦集群["达梦集群"]
            达梦节点1:::data
            达梦节点2:::data
            达梦节点3:::data
        end
        前置达梦数据库:::data
        Redis缓存:::data
        MinIO文件存储:::data
    end

    %% ==================== 紫光云中间件(完全保留) ====================
    subgraph 中间件["紫光云中间件"]
        RocketMQ消息队列:::middleware
        Nginx负载均衡:::middleware
        DolphinScheduler:::middleware
        Elasticsearch:::middleware
    end

    %% ==================== 华为云基础设施(完全保留) ====================
    subgraph 基础设施["华为平台"]
        容器引擎:::infra
        DockerSwarm:::infra
        Prometheus监控:::infra
        Grafana看板:::infra
    end

    %% ==================== 可视化大屏(完全保留) ====================
    subgraph 可视化大屏["业务大屏"]
        总大屏ECharts:::screen
        经营大屏TS:::screen
        生产大屏3D:::screen
        监管大屏GIS:::screen
    end

    %% ==================== 核心业务流(完全保留) ====================
    企业录入终端 -->|原料数据| SpringBoot核心服务
    SpringBoot核心服务 -->|数据存储| 达梦节点1
    微信小程序 -->|扫码查询| 溯源码管理
    溯源码管理 -->|数据查询| SpringBoot核心服务
    监管工作台 -->|监管指令| 监管大屏GIS
    生产设备 -->|IoT数据| RocketMQ消息队列

    %% ==================== 多源数据入库修改点 ====================
    %% 1. MQ消费入库(保留)
    MQ消费数据 -->|消费消息| RocketMQ消息队列
    RocketMQ消息队列 -->|数据处理| 达梦节点1

    %% 2. API接口入库(保留)
    API接口服务 -->|接收数据| SpringBoot核心服务
    SpringBoot核心服务 -->|写入主库| 达梦节点2

    %% 3. 库间迁移入库(修改连线)
    莱斯数据库 -->|DataX迁移| 库间迁移工具
    美亚数据库 -->|Kettle迁移| 库间迁移工具
    库间迁移工具 -->|数据加载| 前置达梦数据库
    前置达梦数据库 -->|定时同步| 达梦节点3
    DolphinScheduler -->|调度DataX| 库间迁移工具
    DolphinScheduler -->|调度Kettle| 库间迁移工具

    %% ==================== 中间件服务连接(完全保留) ====================
    Nginx负载均衡 -->|请求分发| SpringBoot核心服务
    DolphinScheduler -->|任务调度| 数据治理服务
    Elasticsearch -->|索引查询| 溯源码管理
    SpringBoot核心服务 -->|缓存读取| Redis缓存
    SpringBoot核心服务 -->|消息发布| RocketMQ消息队列

    %% ==================== 监控告警连接(完全保留) ====================
    Prometheus监控 -->|指标采集| 容器引擎
    Grafana看板 -->|告警推送| 钉钉告警
    容器引擎 -->|容器监控| Prometheus监控

    %% ==================== 业务标注(完全保留) ====================
    subgraph 业务流["核心业务流程"]
        direction TB
        B1[企业录入]:::biz
        B2[生产溯源]:::biz
        B3[消费者扫码]:::biz
        B4[供应链可视化]:::biz
        B5[质量管控]:::biz
        B6[经营决策]:::biz
        
        B1 --> B2 --> B3 --> B4 --> B6
        B3 --> B5 --> B6
    end

    %% ==================== 业务技术映射(完全保留) ====================
    企业录入终端 -.-> B1
    SpringBoot核心服务 -.-> B2
    微信小程序 -.-> B3
    数据治理服务 -.-> B5
    经营大屏TS -.-> B6

    %% ==================== 国产化标注(完全保留) ====================
    style 基础设施 stroke:#E53935,stroke-width:2px
    style 中间件 stroke:#E53935,stroke-width:2px
    style 达梦集群 stroke:#E53935
    style 前置达梦数据库 stroke:#E53935

    %% ==================== 新增同步说明 ====================
    subgraph 同步说明[" "]
        direction TB
        S1["DataX每日00:30同步"]
        S2["Kettle每日01:00同步"]
        S3["前置库→达梦集群每日02:00同步"]
    end
bash 复制代码
sequenceDiagram
    title 食品安全溯源系统时序图

    %% 全局参与者定义
    box 用户层
    participant 消费者 as 消费者(微信小程序)
    participant 监管员 as 监管员(工作台)
    participant 企业员工 as 企业员工(Web终端)
    participant 供应商系统 as 供应商系统(API)
    end

    box 应用服务层
    participant 溯源服务 as 溯源服务(SpringBoot)
    participant 数据治理 as 数据治理(海豚调度)
    participant 大屏服务 as 大屏服务(TS+ECharts)
    end

    box 数据存储层
    participant 达梦DB as 达梦8(主集群)
    participant Redis as Redis(哨兵模式)
    participant MinIO as MinIO(对象存储)
    end

    %% ============== 场景1:双通道数据录入 ==============
    Note over 企业员工,供应商系统: 场景1:混合数据录入通道
    rect rgb(240,248,255)
    企业员工->>溯源服务: POST /api/batches
    溯源服务->>达梦DB: BEGIN TRANSACTION
    达梦DB-->>溯源服务: 返回事务ID
    溯源服务->>MinIO: PUT /quality-docs
    MinIO-->>溯源服务: 返回ETag
    溯源服务->>Redis: SETEX batch:${id} 604800
    溯源服务-->>企业员工: HTTP 201 Created
    end

    %% ===== API数据接入 =====
    rect rgb(245,245,220)
    供应商系统->>溯源服务: POST /api/materials
    activate 溯源服务
    溯源服务->>溯源服务: OAuth2验证
    alt 验证成功
        溯源服务->>达梦DB: INSERT supplier_data
        溯源服务->>Redis: DEL supplier:{id}
        溯源服务-->>供应商系统: 200 OK (ETag)
    else 验证失败
        溯源服务-->>供应商系统: 401 Unauthorized
    end
    deactivate 溯源服务
    end

    %% ============== 场景2:消费者溯源查询 ==============
    Note over 消费者,Redis: 场景2:消费者扫码溯源
    rect rgb(230,230,250)
    消费者->>溯源服务: GET /trace/ABC123
    alt 缓存命中
        溯源服务->>Redis: HGETALL trace:ABC123
        Redis-->>溯源服务: 返回完整链路数据
    else 缓存穿透
        溯源服务->>达梦DB: EXEC sp_trace_detail
        达梦DB-->>溯源服务: 结果集
        溯源服务->>Redis: HSET trace:ABC123
    end
    溯源服务-->>消费者: HTTP 200 OK
    end

    %% ============== 场景3:监管数据分析 ==============
    Note over 监管员,大屏服务: 场景3:实时监管看板
    rect rgb(255,240,245)
    监管员->>大屏服务: GET /dashboard/region
    大屏服务->>溯源服务: 调用聚合API
    溯源服务->>达梦DB: CALL sp_region_stats
    达梦DB-->>溯源服务: 返回指标数据集
    溯源服务->>大屏服务: Server-Sent Events推送
    大屏服务->>大屏服务: 数据标准化处理
    大屏服务-->>监管员: 渲染热力图GIS展示
    end

    %% ============== 场景4:离线数据治理 ==============
    Note over 数据治理,达梦DB: 场景4:定时数据治理任务
    loop 每日02:00执行
    rect rgb(240,255,240)
        数据治理->>达梦DB: EXEC etl_job_daily
        数据治理->>供应商系统: GET /api/supplier/updates
        供应商系统-->>数据治理: 返回增量JSON
        数据治理->>达梦DB: MERGE INTO supplier_master
        达梦DB-->>数据治理: 输出合并统计
    end
    end

    %% ============== 场景5:系统健康监控 ==============
    Note over 溯源服务,Redis: 场景5:系统健康监测
    rect rgb(255,250,240)
    溯源服务->>Redis: INCR system:health:service1
    Redis->>监控系统: 触发阈值告警
    监控系统-->>运维人员: 钉钉机器人告警
    运维人员-->>监控系统: 已确认告警
    end

同时IDEA也有这个插件可以实时修改和查看预览。

相关推荐
小新1107 小时前
微信小程序学习之轮播图swiper
学习·微信小程序·notepad++
前端 贾公子7 小时前
UniApp 微信小程序绑定动态样式 :style 避坑指南
notepad++
小新1101 天前
微信小程序 密码框改为text后不可见,需要点击一下
微信小程序·小程序·notepad++
AALoveTouch5 天前
霸王茶姬微信小程序自动化签到系统完整实现&解析
微信小程序·自动化·notepad++
Mark.10246 天前
uniapp项目打包的微信小程序,设置uni-popup type=“bottom“时,底部有空隙
微信小程序·uni-app·notepad++
痞老板人小心大7 天前
书法机构用的教务管理系统
notepad++·教务管理系统·教务·教务系统
ice breaker9 天前
weapp-vite - 微信小程序工具链的另一种选择
微信小程序·小程序·notepad++
木子金光军10 天前
Doo全自动手机壳定制系统
notepad++