IoT 项目的难点不在“显示几个设备数据”,而在设备数量增加后,数据是否稳定上传、断线是否可恢复、告警是否及时、历史曲线是否可查询、客户看到的数据是否可信。架构要从采集链路开始设计。
典型架构链路
- 设备 / 网关
- MQTT / HTTP 上报
- 接入服务
- 消息队列
- 规则引擎 / 告警服务
- 时序数据 + 业务数据库
- 看板 / 小程序 / 客户端
设备接入:先定义协议和身份
设备需要有唯一 ID、密钥、型号、固件版本和所属客户。接入层要校验身份,避免任意设备写入数据。
采集协议:MQTT 和 HTTP 适合不同场景
高频、长连接、低功耗设备常用 MQTT;低频上报或简单网关可以用 HTTP。关键是定义稳定的数据格式、时间戳和错误重试机制。
消息队列:削峰和解耦很重要
设备数据可能突然集中上报,直接写数据库容易把服务打满。消息队列可以把接入、解析、存储、告警分开,提高系统韧性。
时序数据:历史曲线不能只靠普通业务表
温度、压力、电量、运行状态等连续数据适合按时间维度存储。要提前设计采样频率、保留周期、聚合粒度和查询索引。
告警规则:实时性和误报都要考虑
告警规则不仅是超过阈值,还包括连续 N 次异常、离线时长、恢复通知、告警升级和通知去重。
可视化看板:不同角色看不同粒度
运维看设备健康,客户看运行状态,管理者看统计趋势。数据权限和展示层级需要和业务角色绑定。
落地前建议确认
- 设备是否有唯一身份和密钥
- 数据上报频率是多少
- 是否需要离线和异常告警
- 历史数据需要保留多久
