使用mermaid 語言繪畫時序圖和鏈路圖

給大家展示一下效果,
官方地址:https://mermaid.nodejs.cn/
官方開發地:https://mermaid.nodejs.cn/intro/#google_vignette
在這里插入圖片描述
在這里插入圖片描述

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數據庫:::externalyy數據庫:::external釘釘告警:::notification%% ==================== 數據采集源(完全保留) ====================subgraph 數據采集["多源數據采集"]MQ消費數據:::middlewareAPI接口服務:::app庫間遷移工具:::middlewareend%% ==================== 用戶層(完全保留) ====================subgraph 用戶層["用戶終端"]生產設備:::user微信小程序:::user監管工作臺:::user消費者APP:::user企業錄入終端:::userend%% ==================== 應用層(完全保留) ====================subgraph 應用層["應用服務"]SpringBoot核心服務:::app溯源碼管理:::app數據治理服務:::app任務調度服務:::append%% ==================== 數據層修改點 ====================subgraph 數據層["數據服務"]subgraph 達夢集群["達夢集群"]達夢節點1:::data達夢節點2:::data達夢節點3:::dataend前置達夢數據庫:::dataRedis緩存:::dataMinIO文件存儲:::dataend%% ==================== 紫光云中間件(完全保留) ====================subgraph 中間件["紫光云中間件"]RocketMQ消息隊列:::middlewareNginx負載均衡:::middlewareDolphinScheduler:::middlewareElasticsearch:::middlewareend%% ==================== 華為云基礎設施(完全保留) ====================subgraph 基礎設施["華為平臺"]容器引擎:::infraDockerSwarm:::infraPrometheus監控:::infraGrafana看板:::infraend%% ==================== 可視化大屏(完全保留) ====================subgraph 可視化大屏["業務大屏"]總大屏ECharts:::screen經營大屏TS:::screen生產大屏3D:::screen監管大屏GIS:::screenend%% ==================== 核心業務流(完全保留) ====================企業錄入終端 -->|原料數據| SpringBoot核心服務SpringBoot核心服務 -->|數據存儲| 達夢節點1微信小程序 -->|掃碼查詢| 溯源碼管理溯源碼管理 -->|數據查詢| SpringBoot核心服務監管工作臺 -->|監管指令| 監管大屏GIS生產設備 -->|IoT數據| RocketMQ消息隊列%% ==================== 多源數據入庫修改點 ====================%% 1. MQ消費入庫(保留)MQ消費數據 -->|消費消息| RocketMQ消息隊列RocketMQ消息隊列 -->|數據處理| 達夢節點1%% 2. API接口入庫(保留)API接口服務 -->|接收數據| SpringBoot核心服務SpringBoot核心服務 -->|寫入主庫| 達夢節點2%% 3. 庫間遷移入庫(修改連線)萊斯數據庫 -->|DataX遷移| 庫間遷移工具美亞數據庫 -->|Kettle遷移| 庫間遷移工具庫間遷移工具 -->|數據加載| 前置達夢數據庫前置達夢數據庫 -->|定時同步| 達夢節點3DolphinScheduler -->|調度DataX| 庫間遷移工具DolphinScheduler -->|調度Kettle| 庫間遷移工具%% ==================== 中間件服務連接(完全保留) ====================Nginx負載均衡 -->|請求分發| SpringBoot核心服務DolphinScheduler -->|任務調度| 數據治理服務Elasticsearch -->|索引查詢| 溯源碼管理SpringBoot核心服務 -->|緩存讀取| Redis緩存SpringBoot核心服務 -->|消息發布| RocketMQ消息隊列%% ==================== 監控告警連接(完全保留) ====================Prometheus監控 -->|指標采集| 容器引擎Grafana看板 -->|告警推送| 釘釘告警容器引擎 -->|容器監控| Prometheus監控%% ==================== 業務標注(完全保留) ====================subgraph 業務流["核心業務流程"]direction TBB1[企業錄入]:::bizB2[生產溯源]:::bizB3[消費者掃碼]:::bizB4[供應鏈可視化]:::bizB5[質量管控]:::bizB6[經營決策]:::bizB1 --> B2 --> B3 --> B4 --> B6B3 --> B5 --> B6end%% ==================== 業務技術映射(完全保留) ====================企業錄入終端 -.-> B1SpringBoot核心服務 -.-> B2微信小程序 -.-> B3數據治理服務 -.-> B5經營大屏TS -.-> B6%% ==================== 國產化標注(完全保留) ====================style 基礎設施 stroke:#E53935,stroke-width:2pxstyle 中間件 stroke:#E53935,stroke-width:2pxstyle 達夢集群 stroke:#E53935style 前置達夢數據庫 stroke:#E53935%% ==================== 新增同步說明 ====================subgraph 同步說明[" "]direction TBS1["DataX每日00:30同步"]S2["Kettle每日01:00同步"]S3["前置庫→達夢集群每日02:00同步"]end
sequenceDiagramtitle 食品安全溯源系統時序圖%% 全局參與者定義box 用戶層participant 消費者 as 消費者(微信小程序)participant 監管員 as 監管員(工作臺)participant 企業員工 as 企業員工(Web終端)participant 供應商系統 as 供應商系統(API)endbox 應用服務層participant 溯源服務 as 溯源服務(SpringBoot)participant 數據治理 as 數據治理(海豚調度)participant 大屏服務 as 大屏服務(TS+ECharts)endbox 數據存儲層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-docsMinIO-->>溯源服務: 返回ETag溯源服務->>Redis: SETEX batch:${id} 604800溯源服務-->>企業員工: HTTP 201 Createdend%% ===== API數據接入 =====rect rgb(245,245,220)供應商系統->>溯源服務: POST /api/materialsactivate 溯源服務溯源服務->>溯源服務: OAuth2驗證alt 驗證成功溯源服務->>達夢DB: INSERT supplier_data溯源服務->>Redis: DEL supplier:{id}溯源服務-->>供應商系統: 200 OK (ETag)else 驗證失敗溯源服務-->>供應商系統: 401 Unauthorizedenddeactivate 溯源服務end%% ============== 場景2:消費者溯源查詢 ==============Note over 消費者,Redis: 場景2:消費者掃碼溯源rect rgb(230,230,250)消費者->>溯源服務: GET /trace/ABC123alt 緩存命中溯源服務->>Redis: HGETALL trace:ABC123Redis-->>溯源服務: 返回完整鏈路數據else 緩存穿透溯源服務->>達夢DB: EXEC sp_trace_detail達夢DB-->>溯源服務: 結果集溯源服務->>Redis: HSET trace:ABC123end溯源服務-->>消費者: HTTP 200 OKend%% ============== 場景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-->>數據治理: 輸出合并統計endend%% ============== 場景5:系統健康監控 ==============Note over 溯源服務,Redis: 場景5:系統健康監測rect rgb(255,250,240)溯源服務->>Redis: INCR system:health:service1Redis->>監控系統: 觸發閾值告警監控系統-->>運維人員: 釘釘機器人告警運維人員-->>監控系統: 已確認告警end

同時IDEA也有這個插件可以實時修改和查看預覽。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83321.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83321.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83321.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ Kafka客戶端(cppkafka)安裝與問題解決指南

一、cppkafka簡介 cppkafka是一個現代C的Apache Kafka客戶端庫,它是對librdkafka的高級封裝,旨在簡化使用librdkafka的過程,同時保持最小的性能開銷。 #mermaid-svg-qDUFSYLBf8cKkvdw {font-family:"trebuchet ms",verdana,arial,…

STM32的ADC模塊中,**采樣時機(Sampling Time)**和**轉換時機(Conversion Time),獲取數據的時機詳解

在STM32的ADC模塊中,**采樣時機(Sampling Time)和轉換時機(Conversion Time)**是ADC工作流程中的兩個關鍵階段,直接影響采樣精度和系統實時性。以下是詳細解析: 1. 采樣時機(Samplin…

Pageassist安裝(ollama+deepseek-r1)

page-assist網站:https://github.com/n4ze3m/page-assist 首先電腦配置node.js,管理員打開命令窗口輸入下面命令下載bun npm install -g buncd 到你想要安裝page-assist的地方(推薦桌面) 輸入下列命令 git clone https://gith…

APC 熒光通道專用!Elabscience? CD11b 抗體激發 / 發射光譜精準匹配流式檢測

內容概要 Elabscience APC Anti-Mouse/Human CD11b Antibody [M1/70](貨號:E-AB-F1081E)是一款高特異性熒光標記抗體,適用于流式細胞術(FCM),可精準檢測小鼠和人類樣本中的 CD11b 髓系細胞&…

entity線段材質設置

在cesium中,我們可以改變其entity線段材質,這里以直線為例. 首先我們先創建一條直線 const redLine viewer.entities.add({polyline: {positions: Cesium.Cartesian3.fromDegreesArray([-75,35,-125,35,]),width: 5,material:material, 保存后可看到在地圖上創建了一條線段…

大模型數據分析破局之路20250512

大模型數據分析破局之路 本文面向 AI 初學者、數據分析從業者與企業技術負責人,圍繞大模型如何為數據分析帶來范式轉變展開,從傳統數據分析困境談起,延伸到 LLM MCP 的協同突破,最終落腳在企業實踐建議。 🌍 開篇導語…

【MySQL】索引太多會怎樣?

在 MySQL 中,雖然索引可以顯著提高查詢效率,但過多的索引(如超過 5-6 個)會帶來以下弊端: 1. 存儲空間占用增加 每個索引都需要額外的磁盤空間存儲索引樹(BTree)。對于大表來說,多個…

使用PocketFlowSharp創建一個Human_Evaluation示例

效果 實踐 有時候AI生成的結果我們并不滿意在進入下一步之前,我們需要對AI生成的結果進行人工審核,同意了才能進入下一個流程。 Human_Evaluation就是人工判斷的一個簡單示例。 internal class Program{static async Task Main(string[] args){// Load…

【項目】自主實現HTTP服務器:從Socket到CGI全流程解析

00 引言 ? 在構建高效、可擴展的網絡應用時,理解HTTP服務器的底層原理是一項必不可少的技能。現代瀏覽器與移動應用大量依賴HTTP協議完成前后端通信,而這一過程的背后,是由網絡套接字驅動的請求解析、響應構建、數據傳輸等一系列機制所支撐…

SQL練習(6/81)

目錄 1.尋找連續值 方法一:使用自連接(Self-Join) 方法二:使用窗口函數(Window Functions) 2.尋找有重復的值 GROUP BY子句 HAVING子句 常用聚合函數: 3.找不存在某屬性的值 not in no…

【流程控制結構】

流程控制結構 流程控制結構1、順序結構2、選擇結構if基本選擇結構if else語法多重if語法嵌套if語法switch選擇結構 3、循環結構循環結構while循環結構程序調試for循環跳轉語句區別 流程控制結構 1、順序結構 流程圖 優先級 2、選擇結構 if基本選擇結構 單if 語法 if&…

【機器人】復現 UniGoal 具身導航 | 通用零樣本目標導航 CVPR 2025

UniGoal的提出了一個通用的零樣本目標導航框架,能夠統一處理多種類型的導航任務。 支持 對象類別導航、實例圖像目標導航和文本目標導航,而無需針對特定任務進行訓練或微調。 本文分享UniGoal復現和模型推理的過程~ 查找沙發,模…

python + flask 做一個圖床

1. 起因, 目的: 對這個網站:https://img.vdoerig.com/ , 我也想實現這種效果。做一個簡單的圖床,后面,可以結合到其他項目中。 2. 先看效果 實際效果。 3. 過程: Grok 聊天: https://img.vdoerig.co…

Java生產環境設限參數教學

哈哈,這個問題問得好!咱們用開餐廳的比喻來理解生產環境的四大必須設限參數,保證你聽完再也不會忘!(搓手手) 1. 堆內存上限:-Xmx(廚房的最大容量) 問題:想象…

電腦出故障驅動裝不上?試試驅動人生的遠程服務支持

在日常工作或學習中,驅動問題時常成為電腦用戶的一大困擾。尤其是在更換硬件、重裝系統、驅動沖突等情況下,許多用戶往往手足無措,不知道從何下手。而“驅動人生”作為國內領先的驅動管理工具,一直以高效、便捷、智能著稱。現在&a…

JS手寫代碼篇---手寫 instanceof 方法

2、手寫 instanceof 方法 instancecof用于檢測一個對象是否是某個構造函數的實例。它通常用于檢查對象的類型,尤其是在處理繼承關系時。 eg: const arr [1,2,3,4,5]console.log(arr instanceof Array); // trueconsole.log(arr instanceof Object); // true那這是…

使用exceljs將excel文件轉化為html預覽最佳實踐(完整源碼)

前言 在企業應用中,我們時常會遇到需要上傳并展示 Excel 文件的需求,以實現文件內容的在線預覽。經過一番探索與嘗試,筆者最終借助 exceljs 這一庫成功實現了該功能。本文將以 Vue 3 為例,演示如何實現該功能,代碼示例…

PMP-第十二章 項目采購管理

項目采購管理核心概念 項目采購管理包括從項目團隊外部采購或獲取所需產品、服務或成果的各個過程項目組織既可以是買方(甲方) ,也可以是賣方(乙 方)項目采購管理過程圍繞協議來進行,協議是買賣雙方之間具…

maven和npm區別是什么

這是一個很容易搞糊涂新手的問題,反正我剛開始從課堂的知識轉向項目網站開發時,被這些問題弄得暈頭轉向,摸不著頭腦,學的糊里糊涂,所以,寫了這么久代碼,也總結一下,為后來者傳授下經…

Leetcode76覆蓋最小子串

覆蓋最小子串 代碼來自b站左程云 class Solution {public String minWindow(String str, String tar) {char[] s str.toCharArray();char[] t tar.toCharArray();int[] cnt new int[256];for (char cha : t) { cnt[cha]--;}int len Integer.MAX_VALUE;int debt t.length…