⚙️ 双核心规则引擎
MzMedia 内置了数据流转规则引擎与场景联动规则引擎两大中枢,构筑了高吞吐、敏捷自愈的自动化体系。
1. 架构总览
text
┌───────────────────────────┐
│ 设备上报属性 / 事件 │
└─────────────┬─────────────┘
▼
┌───────────────────────────┐
│ 规则引擎过滤与评估 │
│ (SpEL / JSONPath 表达式) │
└──────┬─────────────┬──────┘
命中数据分发规则 │ │ 命中场景联动规则
┌─────────────────────────┘ └─────────────────────────┐
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ 9 种数据分发目的地 (Sink) │ │ TCA 场景联动执行动作 │
├──────────────────────────────┤ ├──────────────────────────────┤
│ · TDengine(时序大数据入库) │ │ · 远程设置设备属性 / 调用服务│
│ · MySQL / PostgreSQL(存盘) │ │ · 联动摄像头旋转预置位并抓拍 │
│ · Redis Stream(缓存与分发) │ │ · 触发 Flowable 运维报修工单 │
│ · RocketMQ / Kafka / RabbitMQ│ │ · 联动第三方 Webhook / 短信 │
│ · MQTT Broker / Webhook 推送 │ │ · 自动生成并恢复告警记录 │
└──────────────────────────────┘ └──────────────────────────────┘2. 数据分发引擎 (IotDataRule)
- 条件过滤:支持基于 SpEL(Spring Expression Language)进行灵活表达式编写,如:spel
#payload.temperature > 50.0 && #payload.deviceType == 'HVAC' - 9 种 Sink 输出目的地:
- TDengine:写入时序超级表,承载每秒数万点位的高并发遥测数据;
- MySQL / PostgreSQL:关系数据库直接存盘,适合资产基础属性留痕;
- Redis Stream:低延迟内存消息队列,供前端大屏实时推流;
- Kafka / RocketMQ / RabbitMQ:对接企业级大数据计算中台(Flink/Spark);
- HTTP Webhook:实时推送至企业钉钉/飞书机器人或上级监管平台;
- MQTT Broker:重新发布至指定 Topic,驱动边缘节点联锁控制;
- TCP / WebSocket:直接转发至指定第三方客户端连接。
3. 场景联动引擎 (IotSceneRule - TCA 架构)
- 触发器 (Trigger):
- 属性上报:某个传感器上报数值;
- 设备状态:设备由在线突变离线;
- 定时调度:每天晚上 22:00 自动触发夜间安防模式。
- 条件评估 (Condition):
- 属性多条件与/或比对;
- 生效时间段过滤(如“工作日 08:30-17:30”)。
- 执行动作 (Action):
- ★ 视频联动 (
IotMediaSceneRuleAction):向系统事件总线发布IotMediaLinkageEvent,命令指定国标摄像头转向故障预置位(0x81)并开始云端录像; - 工单派发:自动触发 Flowable 运维报修审批流;
- 反向控制:向就近的排风扇或切断阀发送 Modbus 下行写寄存器命令。
- ★ 视频联动 (
4. 场景联动落地典型范例
TCA 场景联动引擎已经在各行各业的深度业务中得到成熟应用:
