设备上云不只是“连上 MQTT 发 JSON”。生产系统要完成设备身份建立、安全连接、配置同步、遥测处理、命令确认、离线缓存和生命周期管理。
首次上云顺序
1 | 工厂写入设备唯一标识和初始凭据 |
初始凭据不应在所有设备间共享。长期凭据要可轮换、吊销,并绑定设备、租户和最小 Topic 权限。
MQTT over TLS、Keep Alive 与 LWT
MQTT over TLS 表示 MQTT 报文在 TLS 安全通道中传输。TLS 提供传输加密、完整性和服务器认证,也可以配合客户端证书进行双向认证。
Keep Alive 用心跳检测连接是否仍可用;Last Will and Testament(LWT,遗嘱消息)在客户端异常断开时由 Broker 发布预设状态。
1 | 设备正常上线:主动发布 online |
LWT 只能说明连接异常,不代表硬件一定损坏。平台可结合最近遥测时间、网络质量和业务心跳判断在线状态。
遥测上行链路
1 | 设备采集 -> 本地校验与序号 -> MQTT Broker |
消息至少包含设备 ID、事件 ID、设备序号、设备时间、数据版本和测量值。服务端接收时间不能替代设备采集时间,但设备时钟也可能错误,需要同时保留两者。
命令下发状态机
1 | created -> sent -> gateway_received -> device_executed -> confirmed |
命令要定义过期时间、可重试性、幂等键和期望状态。开门、启动电机等高风险命令还要执行权限、审计、二次确认和本地安全条件检查。
断网缓存和补传
设备或网关应把待上传数据写入有界持久队列。网络恢复后按序号补传并限制速率,优先传告警和关键事件,避免历史数据洪峰冲垮 Broker 和数据库。
存储满时必须有明确策略:丢最旧、丢低优先级、聚合采样或停止非关键采集,而不是无限占用磁盘。