越来越多的企业选择将IoT设备迁移上云。我们提供企业从自建MQTT集群迁移到阿里云物联网平台的解决方案。

背景信息

随着IoT企业自身业务增长,终端设备规模不断增加,企业自建的MQTT集群不断遇新的挑战:

  • 连接稳定性变弱,设备频繁掉线;
  • 消息通信时延高,业务响应慢,消费者投诉;
  • 服务器需要扩容,硬件投入和运维成本越来越高。

此时,企业设备全面上云,设备连接迁移到安全、稳定、低时延、高可用、免运维的阿里云物联网平台便是非常明智的最佳选择。

下面以电表场景为例,介绍企业从自建MQTT集群迁移到阿里云物联网平台的方案。

系统现状

假设企业有10万终端设备接入自建MQTT集群,业务架构如下图所示。

业务架构

设备15分钟上报一次业务数据到MQTT集群,实时流转到Kafka中,业务系统从Kafka消费数据,按业务逻辑处理后落库,满足条件的做实时短信推送运维人员。管理人员通过手机App下发配置参数到业务系统,业务系统调用MQTT集群的业务API接口,把配置指令推送到终端设备上。

基于MQTT协议的上行数据和下行指令的业务定义如下:

业务场景 通信Topic 报文Payload
设备上报数据 cdb/data/post DE02,10,17,011101010,am024,1d478f
服务端控制指令 cdb/cmd/push CMD,82923,ad322

方案设计

为了减少企业现有系统改造成本和风险,我们设计了如下设备迁移上云方案。不改造业务报文格式,尽量保持云上业务系统稳定,实现低成本,快速迁移设备到物联网平台,减少企业基础设施成本。

设备上云

方案中,企业IoT设备迁移上云有三个核心变更点:

  • 设备端进行OTA升级,修改接入域名为物联网平台的接入点。
  • 配置规则引擎,把设备数据流转到服务端订阅AMQP消费组,业务服务器实时接收设备数据。
  • 将自建MQTT集群的通信Topic映射为物联网平台的自定义Topic,如下表所示。
表 1. Topic映射方案
原通信Topic 原报文Payload 迁移后的自定义Topic 迁移后的Payload 权限 描述
cdb/data/post DE02,10,17,011101010,am024,1d478f /${productKey}/${deviceName}/user/data/up 格式不变,仍为DE02,10,17,011101010,am024,1d478f 发布 设备向云端上报数据
cdb/cmd/push CMD,82923,ad322 /${productKey}/${deviceName}/user/cmd/down 格式不变,仍为CMD,82923,ad322 订阅 云端向设备下发指令

操作步骤

  1. 在物联网平台控制台配置产品、设备、通信Topic和数据流转方案,请参见云端配置开发
  2. 对设备端进行业务开发,请参见设备端开发
  3. 对服务端进行业务开发,实现接收设备数据和下发控制指令,请参见服务端开发
  4. 启动服务端程序,与物联网平台建立连接,进行整体联调运行,请参见整体联调运行