主题
架构概览
rulego-edge 分三层:南向接入、边缘引擎、北向与值守。全部跑在网关本机。
text
外部系统 南向接入 边缘引擎 北向与值守
──────── ────────────────────── ──────────────────────────── ──────────────────────
PLC ──────► 通道 Channel
仪表 ──────► 产品 Product(物模型) 规则链编排(可视化/热更新) MQTT 上报(断网补传)
RTU ──────► 设备 Device(实例) ──► StreamSQL 流式计算 ──► 本机大屏 / 分享链接
MQTT 设备 ─► 点位 Point(质量标记) 告警引擎(When-Then 规则) IM 推送(飞书/企微/钉钉)
HTTP 设备 ─► 自定义通道(私有协议) AI 值班员(岗位包/数字员工) REST API / Prometheus南向:把协议差异抹平
通道(Channel) 是一条到设备的物理或逻辑连接(一个 Modbus TCP 地址、一根 RS485 串口、一个 MQTT broker、一个私有 HTTP 服务)。通道只管连通性:地址、超时、采集周期默认值。
产品(Product) 是物模型模板:定义一类设备有哪些属性点位、地址与类型、缩放系数、数据规格。设备(Device) 是产品在某个通道上的实例(从站号、设备名)。
同一产品下不同属性可配不同采集周期(温度 1s / 电量 60s / 铭牌 1h),每设备独立调度,慢设备不拖累同通道其他设备。
内置协议:Modbus TCP / RTU、OPC UA、MQTT。S7、EtherNet/IP、SNMP、DL/T645、IEC 104、BACnet 等工业协议族按发行档位编入;私有 HTTP/JSON 协议走自定义通道。详见设备接入。
引擎:编排、计算、值守决策
数据进入网关后交给 RuleGo 规则引擎内核:
- 规则链:可视化设计器拖拽编排过滤、转换、脚本(JS / Lua)、外部调用等节点,热更新不重启。数据到达即触发对应链
- 流式计算:StreamSQL 节点用 SQL 表达窗口聚合(15 分钟需量、滑动均值),内置死区与锁存
- 告警引擎:When-Then 规则(阈值、多级、持续时长、跨设备联动),锁存/非锁存告警落库
- AI 值班员:岗位包与数字员工,告警研判、IM 对话、主动巡检
北向:把结果送到该去的地方
- MQTT 上报:数据与告警按主题模板上报 broker,断网缓存双限(条数 + 字节),恢复后按序补传
- 本机大屏:内置设计器与运行态,值班室电视可直接投屏;只读分享链接开放给管理者
- IM 推送:飞书 / 企业微信 / 钉钉,告警带规则名推送,值班人可回话
- REST / OpenAPI:全部管理接口有 OpenAPI 3.1 规范,活实例可从
GET /api/edge/openapi.yaml直接取
运行底座
| 关注点 | 机制 |
|---|---|
| 存储 | bbolt 单文件(纯 Go,无 cgo),配置存文件、变更留快照 |
| 进程 | 启动自检 → 运行 → 看门狗;卡死主动退出交 systemd 拉起,配置失败自动回退上一份可用配置 |
| 可观测 | /healthz /readyz /metrics(Prometheus)+ 网关健康页 |
| 时钟 | 倒退检测进单调回退模式,保证时序与补传顺序 |
| 资源 | 离线缓存双限、时序数据保留期、bbolt 定期回收;采集跑在有界 worker 池 |