首页 > 云计算 > 公有云实践 > 阿里云物联网平台业务Topic规划最佳实践——实践类
当我们基于阿里云物联网平台做业务开发时,最关键的一个问题就是:如何合理的规划业务通信的Topic和Payload?
基本原则:
接下来,我们以共享充电宝业务场景为例,给大家展示Topic规划的最佳实战。
充电宝场景下业务涉及到充电宝机柜的状态,消费者借还充电宝,广告播放业务等场景,Topic规划如下:

通过规则引擎配置,我们实现不同类型业务消息的流转:
异常事件流转到函数计算做实时业务处理。
业务处理SQL:
SELECT
*, --Payload完整内容
deviceName() as deviceName, --设备id
attribute('bizId') as bizId, --商务渠道id
timestamp('yyyy-MM-dd HH:mm:ss') as time --当前时间
topic() as topic --当前Topic
FROM
"/a1WHdPQzUUn/+/user/up/event/#" --全部上行事件
数据流转:

广告播放记录存储到表格存储中,供后续离线业务分析
业务处理SQL:
SELECT
*, --Payload完整内容
deviceName() as deviceName, --设备id
attribute('bizId') as bizId, --商务渠道id
timestamp('yyyy-MM-dd HH:mm:ss') as time --当前时间
FROM
"/a1WHdPQzUUn/+/user/up/ad/play" --广告播放消息
数据流转:

广告播放记录存储到表格存储中,供后业务查询
业务处理SQL:
SELECT
*, --Payload完整内容
deviceName() as deviceName, --设备id
attribute('bizId') as bizId, --商务渠道id
timestamp('yyyy-MM-dd HH:mm:ss') as time --当前时间
FROM
"/a1WHdPQzUUn/+/user/up/property/post" --状态属性上报
数据流转:

设备的在线/离线状态流转的Topic格式:
/as/mqtt/status/{productKey}/{deviceName}
payload数据格式:
{
"status":"online|offline",
"productKey":"pk13543",
"deviceName":"dn1234",
"time":"2018-08-31 15:32:28.205",
"utcTime":"2018-08-31T07:32:28.205Z",
"lastTime":"2018-08-31 15:32:28.195",
"utcLastTime":"2018-08-31T07:32:28.195Z",
"clientIp":"123.123.123.123"
}
规则引擎SQL:
SELECT productKey,deviceName, timestamp() as timestamp , status, time as currentTime ,lastTime,clientIp FROM "/as/mqtt/status/a1WHdPQzUUn/+"
数据流转:

1.自建MQTT集群迁移阿里云IoT平台
2.IoT时代:WiFi配网技术剖析
3.微信小程序和IoT智能家居实践
4.IoT云端通用数据解析脚本实践
物联网平台产品介绍详情:

阿里云物联网平台客户交流群
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70017009/viewspace-2937320/ ,如需转载,请注明出处,否则将追究法律责任。