Skip to content

架构 ​

EMQX Neuron 运行在工业现场:南向驱动按协议读写设备,北向应用将数据上报至外部系统,中间由独立的流式计算引擎做处理,整体由系统管理模块统一配置和监控。

EMQX Neuron 架构:系统管理之下是数据采集、数据处理、数据转发三个模块,左接现场设备与数据源,右接 IoT 平台、SCADA、数据库等目标系统

核心数据模型 ​

理解 EMQX Neuron 的配置,先理解这三层:

概念是什么
节点 (Node)一个南向驱动或北向应用的运行实例。同一种驱动可以建多个节点,分别连不同设备
组 (Group)节点下的采集单元,有独立的采集频率。组是采集、上报和订阅的最小粒度
点位 (Tag)设备里的一个地址,带读写属性、数据类型和精度

一个 EMQX Neuron 进程里可以同时运行多个南向和北向节点,彼此隔离,由核心框架负责它们之间的消息路由。

详细配置见数据采集、处理与转发,名称长度、单节点组数、最快采集周期等限制见该页的配置规范。

南向到北向的数据路由 ​

南向采到的数据不是直接交给北向应用的,而是经核心框架的消息总线转发:

  1. 每个节点在启动时建立两条 UNIX 域套接字(AF_UNIX / SOCK_DGRAM)——一条走控制指令,一条走数据,控制面和数据面分开。
  2. 北向应用按 (驱动, 组) 建立订阅,订阅关系记录在核心框架里,同时记下该应用的套接字地址。
  3. 某个组采集完成后,核心框架查出订阅了这个组的所有应用,把数据投递到各自的数据面套接字。

因为订阅按组、不按节点,所以同一个南向设备的不同组可以分发给不同的北向应用——比如高频组只发给本地 SCADA,低频组才上云。订阅操作见订阅南向数据。

数据处理引擎 ​

流式计算引擎是独立进程,不在 EMQX Neuron 主进程内,两者通过 NNG 通道通信:

  • EMQX Neuron 侧由 规则引擎应用(一个北向应用)监听 0.0.0.0:7081(端口可配置,范围 1024–65535),使用 NNG 的 pair0 协议。
  • 引擎进程作为客户端连入这条通道,接收订阅到的南向数据。

这个设计的结果是:采集与处理互不阻塞——处理引擎重启、规则出错或负载升高,都不会影响南向采集;反过来,引擎也能独立扩展。代价是数据要跨进程传一次。

引擎侧还能接入设备之外的数据源(HTTP Pull、HTTP Push、SQL 数据库、文件、视频流),与设备数据在同一个引擎里融合。处理后的结果经 Sink 写出。

断网缓存 ​

工业现场网络不稳定,北向连接断开时数据不会丢。以 MQTT 应用为例,开启离线缓存后:

参数说明取值范围
内存缓存大小断连后先缓存在内存1–1024 MB
磁盘缓存大小内存缓存写满后转入磁盘,应大于内存缓存1–10240 MB
同步间隔重连后回传缓存消息的间隔,单位毫秒10–120000,默认 100

内存和磁盘两级缓存要么都配、要么都不配。连接恢复后,缓存的消息按同步间隔逐批回传。

系统管理 ​

  • 配置管理:Web 控制台统一管理南向驱动、北向应用和处理规则;配置持久化在数据目录,升级不丢。
  • 安全:用户名密码访问控制、基于 JWT 的 API 认证、TLS/SSL 加密传输。
  • 可观测:运行日志、节点级性能指标、连接状态监控与告警。
  • 高可用:支持主备模式部署。

详见运维。