四、技术栈选型
4.1 核心技术栈
| 类别 | 技术 / 组件 | 版本 | 用途说明 |
|---|---|---|---|
| 容器平台 | KubeSphere | v4.1.2 | 集群管理、应用部署、运维监控 |
| 物联网平台 | ThingsBoard CE | 最新稳定版 | 设备接入、遥测数据管理、告警规则配置 |
| 开发框架 | 芋道源码(Ruoyi-Vue) | 最新稳定版 | 后台管理、表单组件、权限控制 |
| 流程引擎 | Flowable | 6.x | 工单流程、审批流程(如预警派单、评价审核) |
| 数据库 | MySQL/PostgresSQL | 8.0+/14+ | 业务数据存储(按分层前缀命名) |
| 存储 | OpenEBS+Ceph | 最新稳定版 | 本地存储(OpenEBS)+ 共享存储(Ceph) |
| 前端可视化 | ECharts/Leaflet | 5.x/1.9.x | 大屏图表、GIS 地图(区域 / 设施定位) |
| AI 大模型 | 豆包 / 通义千问 / OpenAI | 最新 API 版 | 智能识别、决策辅助、客服问答 |
4.2 数据库设计规范
数据库表按 "六层结构" 设计,前缀区分层级,确保规范统一:
-
基础信息层(
sys_):全系统复用数据(如sys_user用户表、sys_area行政区划表); -
业务数据层(
biz_):核心业务数据(如biz_asset资产表、biz_event事件表); -
关联关系层(
rel_):解耦多对多关系(如rel_asset_grid资产 - 网格关联表); -
分析统计层(
stat_):预计算统计数据(如stat_event_daily事件日统计表); -
行业应用层(
gen_):行业特化数据(如gen_gas_pipe_mon燃气管网监测表); -
大屏总览层(
view_):可视化适配数据(如view_overview全局核心指标表)。
五、部署指南
5.1 环境准备
-
硬件要求
:
-
Control 节点:3 台,16 核 CPU+16GB 内存 + 500GB 数据盘;
-
Worker 节点:3 台(通用)+3 台(GPU,AI 场景),8 核 CPU+32GB 内存 + 500GB 数据盘;
-
存储节点:4 台,4 核 CPU+16GB 内存 + 3TB 数据盘(Ceph);
-
软件要求
:
-
操作系统:openEuler 24.03 LTS SP1 x86_64;
-
容器运行时:Containerd 1.7.13;
-
部署工具:KubeKey v3.1.7。
5.2 部署步骤
快速搭建
一 需求与环境准备
-
中间件与版本建议
- JDK 17 或 21(LTS)
- Nacos 2.4.x
- MySQL 8.0
- Redis 6/7
-
目标
- 本地或服务器一键准备好中间件与 Java 运行环境 -JAR 按依赖顺序启动:yudao-gateway → yudao-module-system-server → yudao-module-bpm-server → gc-module-datacenter-server → gc-module-industry-server
-
快速检查
-
端口占用排查:8848(Nacos)/ 3306(MySQL)/ 6379(Redis)/ 8080-9000(各服务)
-
建议将本机或服务器的 hosts 配置指向中间件(如 127.0.0.1 nacos mysql redis)
-
二 中间件安装与初始化
-
启动脚本(save as start-middlewares.sh,按需修改密码)
#!/usr/bin/env bash
set -eux变量
MYSQL_ROOT_PW="Root@123456"
REDIS_PW="YourRedisPass"
DB_NAME="nacos"
NACOS_DIR="/opt/nacos"
REDIS_CONF="/etc/redis.conf"关闭防火墙与 SELinux(快速启动场景)
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config关闭交换分区
swapoff -a
sed -i '/\sswap\s/s/^/#/' /etc/fstab安装基础工具
dnf update -y
dnf install -y wget unzip vim net-tools lsofJDK 17
dnf install -y java-17-openjdk-devel
java -versionMySQL 8.0
dnf install -y @mysql:8.0
systemctl enable --now mysqld
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p -e "
CREATE DATABASE IF NOT EXISTS {DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{MYSQL_ROOT_PW}';
FLUSH PRIVILEGES;
"
echo "[mysql] OK"Redis 7
dnf install -y redis
cp {REDIS_CONF} {REDIS_CONF}.bak
cat > {REDIS_CONF} <{REDIS_PW}
daemonize no
pidfile /var/run/redis_6379.pid
EOF
systemctl enable --now redis
redis-cli -a ${REDIS_PW} ping && echo "Redis OK" || echo "Redis FAIL"Nacos 2.4.2
curl -O https://github.com/alibaba/nacos/releases/download/2.4.2/nacos-server-2.4.2.tar.gz
tar -xzf nacos-server-2.4.2.tar.gz -C /opt && ln -s /opt/nacos-server-2.4.2 /opt/nacos
mkdir -p /opt/nacos/logs导入 Nacos 库(MySQL 已内置 schema,此处仅示例)
mysql -uroot -p{MYSQL_ROOT_PW} {DB_NAME} < /opt/nacos/conf/mysql-schema.sql
配置 Nacos 外置库(按需)
sed -i "/^db.url.0=/c\db.url.0=jdbc:mysql://127.0.0.1:3306/${DB_NAME}?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai" /opt/nacos/conf/application.properties
sed -i "/^db.user.0=/c\db.user.0=root" /opt/nacos/conf/application.properties
sed -i "/^db.password.0=/c\db.password.0=${MYSQL_ROOT_PW}" /opt/nacos/conf/application.properties
启动 Nacos(单机)
/opt/nacos/bin/startup.sh -m standalone
tail -f /opt/nacos/logs/start.outecho "All done. Access Nacos: http://127.0.0.1:8848/nacos (nacos/nacos)"
三 平台服务启动
-
下载并解压平台代码包
-
按依赖顺序启动 JAR 包
java -jar yudao-gateway.jar
java -jar yudao-module-system-server.jar
java -jar yudao-module-bpm-server.jar
java -jar gc-module-datacenter-server.jar
java -jar gc-module-industry-server.jar
5.3 参考文档
-
《系统部署架构设计文档》:
docs/deployment/系统部署架构``-20251018.md -
《ThingsBoard 配置指南》:
docs/guide/ThingsBoard_CE配置手册.md -
《芋道源码集成指南》:
docs/guide/芋道源码二次开发手册.md