砍材农夫砍材农夫
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • llm wiki

    • 基于karpathy
    • gradle
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • 环境配置
    • 微信生态
    • 正则
    • 全栈技能
  • java圈

    • java基础
    • jdk体系
    • jvm
    • spring框架
    • 分库分表
    • zookeeper
  • python技能

    • python编程
    • python数据
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • AIoT
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • devops
  • 元宇宙
  • 区块链
  • 物联网
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • llm wiki

    • 基于karpathy
    • gradle
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • 环境配置
    • 微信生态
    • 正则
    • 全栈技能
  • java圈

    • java基础
    • jdk体系
    • jvm
    • spring框架
    • 分库分表
    • zookeeper
  • python技能

    • python编程
    • python数据
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • AIoT
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • devops
  • 元宇宙
  • 区块链
  • 物联网
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 首页
    • 开发板介绍
    • micropython环境搭建
    • esp32开发板
    • 面包板
    • 万能表使用
  • 面包板
    • 点灯
  • esp32
    • 点亮开发板led灯
    • 点亮外接led
    • 点亮外接oled文字
    • 红外传感器
    • 红外传感器+olde
    • esp32+面包板
  • MQTT编程

    • MQTT入门

      • 物联网 MQTT
      • 物联网 MQTT和Socket
      • 物联网 MQTT订阅性能优势
      • 物联网 MQTT简易版Broker
    • HiveMQ

      • hivemq实战入门
    • Protobuf

      • Protobuf入门
      • Protobuf入门+梳理
      • Protobuf实战第一篇
    • emqx

      • emqx入门
    • mica

      • mica入门
    • netty

      • 入门

        • 基于netty构建入门
        • 理解粘包/拆包
        • 编解码器机制与自定义协议
        • 心跳和ack机制
        • mqtt服务demo演示
        • mqtt服务协议支持
        • mqtt服务udp支持
      • 协议规范

        • mqtt协议规范(发布/订阅模式)
        • mqtt协议规范(轻量级二进制协议)
        • mqtt协议规范(三种 QoS 等级)
        • mqtt协议规范(主题通配符订阅)
        • mqtt协议规范(遗嘱与保留消息)
      • 报文结构

        • 控制报文结构(报文分类)
        • 控制报文结构(连接与握手)
        • 控制报文结构(发布与接收)
      • 核心实战

        • 核心实战(握手与认证)
        • 核心实战(心跳保活机制)
        • 核心实战(会话管理)
        • 核心实战(安全)
    • mqtt-模拟器|客户端

      • 集成Paho

        • 设备模拟器设计
        • 设备模拟器演示
        • Paho拆解入门
        • Paho拆解核心
        • Paho拆解高性能
        • 其他客户端框架比较
      • NetAssist

        • 设备模拟器设计
      • hiveMq

        • hiveMq客户端
    • netty-mqtt-boot

      • 模块化设计
      • 统一接入层
      • 消息路由与流转层
      • 核心服务层
      • 业务应用层
      • 整体项目管理
      • 测试脚手架
      • 兼容支持
    • mqtt-压测

      • mqtt-jmeter

        • 模块化设计
      • ‌emqtt-bench

        • 模块化设计
    • mqtt-规则引擎

      • MQTT规则引擎
      • sql

        • 基于sql规则
      • ice

        • 模块化设计
      • Aviator

        • 模块化设计
      • Drools

        • 模块化设计
    • mqtt-实战问题

      • MQTT分布式集群

        • 分布式集群

          • 分布式集群意义
          • 如何构建分布式集群
          • 分布式集群简易版
          • mqtt入口HAProxy模拟负载
        • ignite

          • ignite入门
          • 模块化设计
      • 实战汇总

        • netty集成udp和tcp编码
        • mqtt集成tls
  • mqtt-netty源码拆解

    • mqtt-netty源码拆解

      • Pipeline双向链表
      • MqttEncoder.INSTANCE
      • 分布式集群简易版
      • mqtt入口HAProxy模拟负载
  • 物联网实战:MQTT平台 | MQTT规则引擎
    • MQTT 规则引擎到底有没有必要(设备规模)
      • 小型项目(几十~几百台设备、只做透传转发)
      • 中型 / 标准 IoT 平台(千台以上设备、工业 / 智慧家居 / 充电桩)
      • 大型集群平台(十万 + 设备、车联网 / 智能制造)
    • 业务场景角度
      • 规则引擎的作用
      • 不需要规则引擎
    • 不同路线比较
    • 统一选用「SQL 存储规则」而不是配置文件 / 硬编码?
    • 层级结构图

物联网实战:MQTT平台 | MQTT规则引擎

MQTT规则引擎的核心作用,是为物联网平台提供一个无需编写代码的可视化数据处理中枢

MQTT 规则引擎到底有没有必要(设备规模)

小型项目(几十~几百台设备、只做透传转发)

非必需,可以不用规则引擎

  • 需求:设备上报数据原样转发后端服务、无数据过滤、无自动下发、无告警、无入库逻辑
  • 落地做法:Netty Broker 收到 PUBLISH 直接转发 MQTT 客户端订阅,业务全写在后端服务
  • 缺点:新增过滤 / 告警就要改后端代码、发布重启

中型 / 标准 IoT 平台(千台以上设备、工业 / 智慧家居 / 充电桩)

必须做规则引擎(行业标配)

  • 消息过滤裁剪:设备高频上报原始数据,只把超限、异常数据入库 / 告警,减少数据库 IO 压力(例:温度>60℃才存库)
  • 数据异构转换:设备 payload 是 JSON / 二进制,规则层统一字段映射,不用每个业务系统单独解析报文
  • 自动化联动:传感器上报异常→平台自动下发指令控设备(温感超标→关闭电磁阀),零后端介入
  • 灵活业务迭代:新增业务不用改 Broker 和后端代码,后台配置 SQL 规则即可生效,这是用 SQL 存规则的核心价值

大型集群平台(十万 + 设备、车联网 / 智能制造)

强依赖规则引擎,架构不可缺

  • 海量消息分流:不同主题数据分别落 MySQL/Influx/Kafka、分业务队列,Broker 层完成分流,避免全量消息打入后端导致雪崩

业务场景角度

规则引擎的作用

  • 1)MQTT Broker 只负责消息收发与主题分发

不解析报文内容,物联网核心诉求是基于报文内容做事件驱动,阈值判断、数据筛选、设备联动这类逻辑无法在 Broker 原生实现

  • 2)剥离业务逻辑至规则层

避免过滤、清洗、转发逻辑分散在各个业务服务里,防止业务服务重复解析设备报文、重复做数据校验,降低上下游耦合

  • 3)物联网业务规则高频变动

修改告警阈值、存储策略、转发链路,依托配置化规则即可生效,不用迭代业务服务代码、不用上线发布

  • 4)统一做消息治理

报文编解码、脏数据过滤、消息分流、异构系统对接,全链路收口在规则引擎,方便统一运维、故障排查、全链路监控

不需要规则引擎

业务只有纯粹消息透传,设备上报数据不做任何筛选、转换、条件判断、跨系统转发,所有原始消息统一由单一消费服务全量接收处理,后续也无新增事件类业务规划,此时可舍弃规则引擎

不同路线比较

路线规则存储开发量适用项目
EMQX 内置 SQL 规则EMQX 自有库 + 自定义 MySQL0 开发,开箱即用快速上线、不想自研底层
外置独立规则服务MySQL中等(Broker + 规则双服务)旧项目改造、Broker 不动
自研内置 SQL 规则自建 MySQL 规则表分步自研(你当前路线)私有化定制、长期迭代平台

统一选用「SQL 存储规则」而不是配置文件 / 硬编码?

  • 可视化管理:配套管理后台做规则新增 / 启停 / 编辑,产品、运维不用改代码
  • 热更新:DB 修改规则,定时任务刷新内存缓存,不用重启 Broker 服务
  • 数据追溯:规则变更记录、规则触发日志全部落库,方便故障排查
  • 多环境兼容:生产 / 测试环境规则隔离,快速批量导入导出规则

层级结构图

┌─────────────┐
│ MQTT Broker │
└──────┬──────┘
       ↓
┌─────────────────┐  【外置独立:协议编解码网关】
│ 二进制/16进制解码│
└────────┬────────┘
         ↓
┌─────────────────────────────┐
│      规则引擎主体架构       │
│ ┌───────────────────────┐  │
│ │消息接入&预处理削峰层│  │
│ └───────────┬───────────┘  │
│             ↓              │
│ ┌───────────────────────┐  │
│ │规则配置&缓存管理层  │  │
│ └───────────┬───────────┘  │
│             ↓              │
│ ┌───────────────────────┐  │
│ │主题索引粗匹配层     │  │
│ └───────────┬───────────┘  │
│             ↓              │
│ ┌───────────────────────┐  │
│ │表达式条件运算层(核) │  │
│ └───────────┬───────────┘  │
│             ↓              │
│ ┌───────────────────────┐  │
│ │动作插件调度执行层  │  │
│ └───────────┬───────────┘  │
└─────────────┬──────────────┘
              ↓
    数据库/HTTP/MQTT/告警服务
最近更新: 2026/6/5 09:59
Contributors: kcnf