从协议上来看,主要处理`TCP`和`MQTT`协议。主要解决的问题: - 架构:策略和控制,缺少统一的设备管理、安全认证、权限控制、规则引擎 - 设备对接 - 开发:业务扩展低,重复造轮子 - 构建 - 测试 - 集成 - 部署 - 运行:缺少多数据中心,高可用欠缺,难以承受百万并发 - 维护:成本高,服务器资源浪费,缺少监控预警 解决办法:统一的网关。组成是: - `IOT Hub`:对接设备 - 安全认证 - 报文解析 - 设备路由 - 设备运维 - 权限控制 - 数据存储 - 实时监控 - 插件管理 - 规则引擎 - `IOT`指令下发服务 效果表现: - 架构:策略和控制 - 设备对接:兼容多种协议,海量设备接入 - 开发 - 构建 - 测试 - 集成 - 部署 - 运行:高可用确保`SLA`,安全性、水平扩展 - 维护 > `SLA`: service level agreement, 关于服务质量 技术栈: - `MQTT`协议:`EMQ X Broker` + `MQTT Client` - `TCP`协议:`SuperSocket`,是`TCP`服务器 - 消息队列:`RabbitMQ` 数据流向: - 设备接入 ``` → 负载均衡 --MQTT协议 → EMQ X Broker高可用集群 → 负载均衡 → 应用集群 --TCP协议 → 应用集群 ``` - 报文解析 ``` 设备开放平台报文解析插件 自定义报文解析插件(dll程序集和js脚本) ``` - 数据处理 ``` 规则引擎 --事件通知插件 --更新Redis插件 --自定义插件 ``` - 消息队列