1、背景 / 目标
实现覆盖IOT物联网设备接入,云端连接管理,数据上报、指令下发的全功能场景,使用MQ、存储等方式完成指令下发 / 缓存等功能,对下发消息进行多级别QOS管理。
2、整体架构设计图
3、功能列表及实现路径
3.1、网络层管理
- 客户端通过DNS域名访问公网,DNS域名服务器配置域名类型为CNAME,重定向到指定云运营商ITM服务器。
- ITM下挂载多地、多云公网IP入口,通过权重、优先级、就进性策略对多个公网入口进行流量管理。
- 公网EIP绑定多云、多地LB,LB代理后端节点集群,通过LB探活、负载策略对单LB下集群进行流量分发。
- TLS认证 / MQTT认证逻辑可在代理层进行拆包 / 校验,若包含复杂的设备校验逻辑建议后置到长连接代理服务中进行。
3.2、长连接管理
- 建连业务:设备侧建连触发逻辑、超时机制、连接丢弃策略,平台侧本地会话管理、分布式会话管理(redis)、集群节点历史会话管理、设备级别缓存历史消息处理,上线通知等。
- 保活业务:设备侧主动心跳探测逻辑 / 频率(需考虑性能、功耗等),平台侧连接级别反向心跳逻辑 / 频率 / 连接丢弃策略等。
- 断连业务:设备侧断连感知机制、弱网探测机制、阶梯重连机制,平台侧真假连接管理,下线通知等。
3.3、数据上报
- 设备 / 云数据自定义数据协议、上传数据一致性保证,设备侧业务优先级、延迟上报、抽稀、丢弃、缓存、持久化等策略,平台侧单节点级别 / 设备级别 / 业务级别限流、降频、缓存、持久化等策略。
- 代理服务规则引擎,云、云同步 / 异步多通道,数据引擎直连等模式。
- 纯上报、等应答、QOS多级别业务特性支持。
3.4、指令下发
- 同步 / 异步 / RRPC多方式业务下发接口,RPC / MQ多通道接入方式,自定义QOS级别、设备离线指令缓存时间。
- MQTT broker redis / LMQ多方式管控设备级别多指令下发状态,多级别QOS保证。
3.5、监控 / 告警
- sky walking、trace等设备、云全链路业务追踪,对链路进行全采集、抽稀采集等。
- grafana、prometheus、kibana等日志、图标指标监控,构建各业务阶段QPS、成功率、RT等大盘监控。
- 基于业务指标 / 系统指标 / 集群指标对全业务异常状态进行点对点告警、跟踪等。
4、详细实现
略