🏭 问题背景
设备分布在多厂区、多产线,需要一个统一平台:集中看状态、收报警、查历史,并随设备规模横向扩展。
📉
数据孤岛
各厂区设备数据相互独立
🔕
报警靠人
异常发现依赖人工巡检
🗂️
历史难查
无统一时序数据可回溯
📈
难以扩展
单机部署扛不住设备增长
方案思路:构建一套可复用的分层架构,从采集到报警全链路覆盖,支持水平扩展。
🏗️ 架构分层
六层解耦,每层可独立水平扩展:
设备层
采集终端
接入层
EMQX 消息集群
存储层
InfluxDB 时序库
计算层
规则引擎
应用层
Node.js API
表现层
大屏
🧩 核心能力
👁️
实时监控
状态实时刷新,失联自动标记离线
🚨
告警规则引擎
阈值 / 条件告警,多端推送 + 防抖
📈
历史分析
时序统一存储,趋势曲线与报表
🛠️
设备管理
台账、远程配置、固件升级、组织层级
🚨 告警链路
从数据接入到用户触达的判定链路:
📨
数据接入
设备遥测经 MQTT 到达平台
⚖️
规则判定
阈值 / 条件 / 持续时长匹配
✅
命中触发
微信 · 短信 · 邮件多渠道推送
⏸️
未命中
自动忽略,避免告警风暴
🔄 数据链路
从采集到展示的完整数据流:
📡1
设备采集
终端按周期读取遥测
📤2
消息上行
MQTT 发布至接入集群
💾3
时序入库
InfluxDB 压缩存储
⚙️4
规则计算
实时判定并触发告警
📊5
可视化
大屏 / Web / 移动端展示
📊 关键指标
⚡
万级
并发连接
EMQX 集群水平扩展
🕐
秒级
告警延迟
事件驱动触发
📈
亿级
时序数据点
InfluxDB 压缩存储
🔁
≥99.9%
系统可用性
集群 + 主备部署
🔐
端到端加密
安全传输
MQTT TLS + 证书认证
🛰️
水平扩展
弹性伸缩
按设备规模动态扩容
🔐 安全基线
🔐
强制加密
MQTT 启用 TLS,设备独立证书认证
🔑
最小权限
设备令牌仅订阅自身主题前缀
🛡️
库库分离
时序库与业务库分离,接口限流防刷
🏢 部署形态
两种典型部署,按规模选择:
单厂区小规模
🏠
单机部署
EMQX + API + 数据库同机
💰
低成本
一套物理机即可跑通
⚙️
轻运维
免集群,维护简单
多厂区大规模
🏭
分布式集群
按厂区独立租户、数据分片
🔀
负载均衡
接入层水平扩展
📊
统一视图
跨厂区集中监控与报表
➡️ 演进方向
🔌
接入层扩展
兼容更多协议与设备类型
🧠
智能告警
基于趋势的预测性预警
🤖
自动化联动
告警触发远程控制动作