工业实时数据推送方案 - 杭州领祺科技

领祺科技工业实时数据推送方案采用”采集接入+数据缓冲+规则分发+推送服务+客户端订阅”五层架构,支持毫秒到秒级数据推送,满足组态大屏、移动端和第三方系统的实时订阅需求,适用于设备遥测、能源监控、告警事件等场景。

  • 日期: 2026-05-28 | 来源: 原创
  • 分类: 技术分享

一、建设目标与总体思路

工业现场设备数量多、点位频率高、数据类型复杂,实时数据推送不能简单依赖单线程轮询或接口频繁查询。推荐采用”采集接入层、数据缓冲层、规则分发层、推送服务层、客户端订阅层”的分层架构,将数据接入、数据处理和数据推送解耦,保证高并发、低延迟和可扩展。

系统核心目标是:设备数据进入平台后,能够在毫秒到秒级范围内推送到大屏、Web、移动端或第三方系统;同时在高并发连接、网络抖动、客户端离线、瞬时数据洪峰等情况下,保证服务稳定,不因单个客户端或单个通道异常影响整体业务。

二、总体架构设计

方案采用”消息队列削峰 + 连接会话管理 + 主题订阅分发 + 批量/合并推送”的模式。采集端只负责上报,推送端只负责下发,中间通过队列和内存缓存完成异步解耦。

层级主要职责推荐组件设计要点
采集接入层接收 MQTT、TCP、HTTP、网关上报数据MQTT Broker、Netty、HTTP 接口只做协议接入和基础校验,避免复杂业务阻塞
缓冲解耦层削峰填谷、异步处理、失败重试Kafka、RabbitMQ、Redis Stream按项目、网关、设备或数据类型分区,保证消费能力
实时计算层解析、清洗、补充设备信息、判断变化Java Worker、线程池只处理最新值、变化值、告警值,减少无效推送
推送服务层维护连接、订阅关系、并发下发WebSocket、SSE、MQTT按主题分组推送,支持批量合并和限频
客户端层大屏、后台页面、第三方系统接收数据Web、App、接口订阅方断线重连、心跳保活、离线后重新拉取快照

三、推送模型与主题规划

实时推送不建议所有客户端接收全量数据,应按业务范围建立订阅主题:

  • 项目级主题:适合驾驶舱、大屏首页,推送项目总功率、在线数量、告警数量、收益或能耗汇总等聚合数据。
  • 设备级主题:适合设备详情页,推送某台 PCS、BMS、电表、传感器的实时点位。
  • 告警事件主题:适合弹窗、消息中心、声光告警,优先级高于普通遥测数据。
  • 控制结果主题:适合策略下发、远程控制、参数设置后的结果回执。

四、并发推送处理策略

1. 队列削峰,避免推送线程被采集流量打爆

设备上报数据先进入消息队列或内存缓冲区,推送服务异步消费。高峰期可以通过批量消费、分区消费和限速策略平滑流量。

2. 最新值覆盖,减少无意义重复推送

工业实时数据通常关注”当前状态”。对于功率、电压、电流、SOC、温度等高频数据,可在短时间窗口内只保留最新值,例如 500ms 或 1s 合并一次。

3. 主题分组,按订阅关系精准下发

服务端维护客户端与主题的关系,减少网络带宽、降低前端渲染压力,并满足不同用户的数据权限隔离。

4. 连接隔离,防止慢客户端拖垮系统

每个客户端连接维护独立发送队列,发送缓慢或长时间无响应的连接要主动降级或断开。

5. 告警优先,普通遥测可合并

告警、故障、控制回执属于高优先级消息,应立即推送;普通遥测数据可以合并、限频、丢弃过期值。

五、数据一致性与异常处理

  • 客户端首次连接时先获取一次”当前快照”,再订阅实时增量,避免页面初始数据不完整。
  • 断线重连后,先重新鉴权和订阅,再重新拉取快照,随后继续接收实时数据。
  • 推送消息建议带上时间戳、设备标识、点位标识、质量码和数据版本,前端可根据时间戳丢弃过期消息。
  • 服务端要记录连接数、推送速率、队列积压、失败次数、平均延迟等指标。

六、落地建议

Java 后台使用 Netty 或 Spring WebSocket 作为实时连接层,结合 Redis/Kafka/RabbitMQ 做异步解耦。单机部署时可先使用内存队列和 WebSocket 分组推送;当连接数、设备数或项目数增长后,再拆分为采集服务、消息服务、计算服务和推送服务。

对于能源、储能、工业物联网平台,推荐优先推送”变化数据、聚合数据、告警数据和控制结果”四类核心数据。现场网关推荐使用领祺PBox系列通信管理机,支持MQTT/IEC104/Modbus等多种协议接入。

如需了解更多工业实时数据推送方案详情,请联系杭州领祺科技:全国服务热线 400-001-8882,公司电话 0571-86778850