Api Demo | 接口原型

阿里云物联网平台调研

2021-06-22T08:22:32
--------------------------------------------------------------------------------------------------------

一、阿里物联网平台介绍

阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。

物联网平台消息通信流程图如下。

企业基于物联网平台的业务链路



上行数据链路

  • 设备通过MQTT协议与物联网平台建立长连接,上报数据(通过Publish发布Topic和Payload)到物联网平台。

  • 您可配置规则引擎,编写SQL对上报数据进行处理,并配置转发规则,将处理后的数据转发到RDS、表格存储、函数计算、TSDB、企业版实例内的时序数据存储、DataHub、消息队列RocketMQ等云产品中,或通过AMQP消费组流转到您的ECS服务器上。


下行指令链路

  • ECS业务服务器调用基于HTTPS协议的API接口Pub,给Topic发送指令,将数据发送到物联网平台。

  • 物联网平台通过MQTT协议,使用Publish发送数据(指定Topic和Payload)到设备端。



二、阿里物联网平台的产品功能

物联网平台主要提供了设备接入、设备管理、规则引擎等能力,为各类IoT场景和行业开发者赋能。


设备接入

物联网平台支持海量设备连接上云,设备与云端通过IoT Hub进行稳定可靠地双向通信。

  • 设备开发:提供设备端SDK、驱动等,帮助不同设备、网关轻松接入阿里云。

  • 设备接入引导提供蜂窝(2G、3G、4G、5G)、NB-IoT、LoRaWAN、Wi-Fi等不同网络设备接入方案,解决企业异构网络管理设备接入的痛点。

  • 提供MQTTCoAPHTTP、HTTPS等多种协议的设备端SDK,既满足长连接的实时性需求,也满足短连接的低功耗需求。

  • SDK不同语言或平台功能汇总开源多种平台设备端代码,提供跨平台移植指导,赋能企业基于多种平台做设备接入。

设备管理

物联网平台提供完整的设备生命周期管理功能,支持设备注册功能定义数据解析在线调试远程配置OTA升级实时监控设备分组设备删除等功能。

功能特性如下:

  • 提供设备物模型,简化应用开发。

  • 提供设备上下线变更通知服务,方便实时获取设备状态。

  • 提供数据存储能力,方便用户海量设备数据的存储及实时访问。

  • 支持OTA升级,赋能设备远程升级。

  • 提供设备影子缓存机制,将设备与应用解耦,解决不稳定无线网络下的通信不可靠痛点。

安全能力

物联网平台提供多重防护,有效保障设备和云端数据的安全。

  • 身份认证

    • 提供芯片级安全存储方案(ID²)及设备密钥安全管理机制,防止设备密钥被破解。安全级别很高。

    • 提供X.509证书的设备认证机制,支持基于MQTT协议直连的设备使用X.509证书进行认证。安全级别很高。

    • 提供一机一密的设备认证机制,降低设备被攻破的安全风险。适合有能力批量预分配设备证书(ProductKey、DeviceName和DeviceSecret),将设备证书信息烧录到每个设备的芯片。安全级别高。

    • 提供一型一密的设备认证机制。设备预烧产品证书(ProductKey和ProductSecret),认证时动态获取设备证书(包括ProductKey、DeviceName和DeviceSecret)。适合批量生产时无法将设备证书烧录每个设备的情况。安全级别普通。

  • 通信安全

    • 支持TLS(MQTTHTTPS)、DTLS(CoAP)数据传输通道,保证数据的机密性和完整性,适用于硬件资源充足、对功耗不是很敏感的设备。安全级别高。

    • 支持设备权限管理机制,保障设备与云端安全通信。

    • 支持设备级别的通信资源(Topic等)隔离,防止设备越权等问题。

规则引擎

物联网平台规则引擎包含以下功能:

  • 服务端订阅:订阅某产品下所有设备的某个或多个类型消息,您的服务端可以通过AMQP客户端或消息服务(MNS)客户端获取订阅的消息。

  • 云产品流转:物联网平台根据您配置的数据流转规则,将指定Topic消息的指定字段流转到目的地,进行存储和计算处理。

    有关数据流转规则的应用场景和优势对比,请参见数据流转方案对比


    功能项说明
    数据转发到另一Topic实现设备与设备之间的通信。
    数据转发到实例内的时序数据存储实现设备时序数据的高效写入。

    说明 您需购买企业版实例。具体操作,请参见购买企业版实例

    数据转发到AMQP服务端订阅消费组您的服务端通过AMQP客户端监听消费组获取消息。
    数据转发到消息队列RocketMQ保障应用消费设备数据的稳定可靠性。
    数据转发到消息服务保障应用消费设备数据的稳定可靠性。
    数据转发到表格存储提供设备数据采集和结构化存储的联合方案。
    数据转发到DataHub提供设备数据采集和大数据计算的联合方案。
    数据转发到云数据库RDS提供设备数据采集和关系型数据库存储的联合方案。
    数据转发到时序数据库提供设备数据采集和时序数据存储的联合方案。
    数据转发到函数计算提供设备数据采集和事件计算的联合方案。

场景联动

配置简单规则,即可将设备数据无缝流转至其他设备,实现设备联动。



三、产品架构

设备连接物联网平台,与物联网平台进行数据通信。物联网平台可将设备数据流转到其他阿里云产品中进行存储和处理。这是构建物联网应用的基础。

物联网平台架构

IoT SDK

物联网平台提供IoT SDK,设备集成SDK后,即可安全接入物联网平台,使用设备管理、数据流转等功能。

只有支持TCP/IP协议的设备可以集成IoT SDK。

具体操作,请参见设备端SDK开发指南

边缘计算

边缘计算能力允许您在最靠近设备的地方构建边缘计算节点,过滤清洗设备数据,并将处理后的数据上传至云平台。更多信息,请参见物联网边缘计算

设备接入

物联网平台提供各类设备端SDK设备认证方式,支持MQTTCoAPHTTP等多种协议,实现设备快速上云。

设备上云后与云端通过IoT Hub进行稳定可靠地双向通信。

IoT Hub具有下列特性:

  • 高性能扩展:支持线性动态扩展,可以支撑十亿设备同时连接。

  • 全链路加密:整个通信链路以RSA、AES加密,保证数据传输的安全。

  • 消息实时到达:当设备与IoT Hub成功建立数据通道后,两者间将保持长连接,以减少握手时间,保证消息实时到达。

  • 支持数据透传: IoT Hub支持将数据以二进制透传的方式传到自己的服务器上,不保存设备数据,从而保证数据的安全可控性。

  • 支持多种通信模式:IoT Hub支持RRPC和PUB/SUB两种通信模式,以满足您在不同场景下的需求。其中,PUB/SUB是基于Topic进行的消息路由。

  • 支持多种设备接入协议:支持设备使用CoAP、MQTT、HTTPS协议接入物联网平台。

消息通信

物联网平台支持通过服务端订阅云产品流转场景联动广播通信RRPC通信等方式,通过配置规则,实现设备、服务器、物联网平台之间通信消息的同步、转化、过滤、存储等功能。

设备管理

物联网平台为您提供功能丰富的设备管理服务,包括:生命周期、设备分发设备分组设备影子设备拓扑物模型数据解析数据存储等。

监控运维

物联网平台支持OTA升级在线调试日志服务远程配置实时监控、远程维护等功能。

数据分析

数据分析是阿里云为物联网开发者提供的数据智能分析服务,针对物联网数据特点,提供海量数据的存储备份、资产管理、报表分析和数据服务等能力,帮助企业用户更容易地挖掘物联网数据中的价值。

更多信息,请参见物联网数据分析

安全认证和权限策略

安全是IoT的重要话题。阿里云物联网平台提供多重防护,保障设备和云端数据的安全。

  • 物联网平台为每个设备颁发唯一证书,设备使用证书进行身份验证连接物联网平台。

  • 针对不同安全等级和产线烧录的要求,物联网平台为开发者提供了多种设备认证方式。

  • 授权粒度精确到设备级别,任何设备只能对自己的Topic发布、订阅消息。服务端凭借阿里云AccessKey对账号下所属的Topic进行操作。




四、名词解释



名词描述
产品设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的ProductKey。
设备归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证书DeviceName。设备可以直接连接物联网平台,也可以作为子设备通过网关连接物联网平台。
分组物联网平台支持建立设备分组,分组中可包含不同产品下的设备。通过设备组来进行跨产品管理设备。
网关能够直接连接物联网平台的设备,且具有子设备管理功能,能够代理子设备连接云端。
子设备本质上也是设备。子设备不能直接连接物联网平台,只能通过网关连接。
设备证书设备证书指ProductKeyDeviceNameDeviceSecret的组合。
  • ProductKey:是物联网平台为产品颁发的全局唯一标识。该参数很重要,在设备认证以及通信中都会用到,因此需要您保管好。

  • DeviceName:在注册设备时,自定义的或系统生成的设备名称,具备产品维度内的唯一性。该参数很重要,在设备认证以及通信中都会用到,因此需要您保管好。

  • DeviceSecret:物联网平台为设备颁发的设备密钥,和DeviceName成对出现。该参数很重要,在设备认证时会用到,因此需要您保管好并且不能泄露。

ProductSecret由物联网平台颁发的产品密钥,通常与ProductKey成对出现,可用于一型一密的认证方案。该参数很重要,需要您保管好,不能泄露。
设备X.509证书物联网平台支持设备使用X.509数字证书进行身份验证。您创建认证方式为X.509证书的设备后,物联网平台为设备颁发对应的X.509证书,证书信息包括:X.509数字证书(Certificate)、X.509证书ID(CertSN)和X.509证书密钥(PrivateKey)。
TopicTopic是UTF-8字符串,是发布(Pub)/订阅(Sub)消息的传输中介。可以向Topic发布或者订阅消息。
Topic类同一产品下不同设备的Topic集合,用${productkey}和${deviceName}通配一个唯一的设备,一个Topic类对一个ProductKey下所有设备通用。
发布操作Topic的权限类型,对应的英文名称为Pub。可以往此类Topic中发布消息。
订阅操作Topic的权限类型,对应的英文名称为Sub。可以从此类Topic中订阅消息。
RRPC全称:Revert-RPC。RPC(Remote Procedure Call)采用客户机/服务器模式,用户不需要了解底层技术协议,即可远程请求服务。RRPC则可以实现由服务端请求设备端,并能够使设备端响应的功能。
标签标签分为产品标签、设备标签和分组标签。
  • 产品标签:描述同一个产品下,所有设备所具有的共性信息。

  • 设备标签:通常根据设备的特性为设备添加的特有标记,您可以自定义标签内容。

  • 分组标签:描述同一个分组下,所有设备所具有的共性信息。

Alink协议阿里云定义的设备与云端之间的通信协议。
物模型是对设备在云端的功能描述,包括设备的属性、服务和事件。物联网平台通过定义一种物的描述语言来描述物模型,称之为TSL(即 Thing Specification Language),采用JSON格式,您可以根据TSL组装上报设备的数据。
属性设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。属性支持GET和SET请求方式。应用系统可发起对属性的读取和设置请求。
期望属性值通过期望属性值功能,设置您希望的设备属性值。若设备在线,将实时更新属性值;若设备离线,期望属性值将缓存在云端。设备上线后,获取期望属性值,并更新属性值。
服务设备的功能模型之一,设备可被外部调用的能力或方法,可设置输入参数和输出参数。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。
事件设备的功能模型之一,设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。例如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。
数据解析脚本针对采用透传格式/自定义数据格式的设备,需要在云端编写数据解析脚本,将设备上报的二进制数据或自定义的JSON数据,转换为物联网平台支持的Alink JSON数据格式;将平台下发的Alink JSON格式数据,转换为设备支持的格式。
设备影子是一个JSON文档,用于存储设备或者应用的当前状态信息。每个设备都会在云端有唯一的设备影子。无论该设备是否连接到Internet,您都可以使用设备影子通过MQTT协议或HTTP协议获取和设置设备的状态。
规则引擎通过创建、配置规则,以实现服务端订阅、数据流转和场景联动。
服务端订阅服务端订阅产品下所有类型的消息:设备上报消息、设备状态变化通知、网关发现子设备上报消息、设备生命周期变更消息和设备拓扑关系变更消息。目前支持两种方式实现服务端订阅:
  • AMQP:Advanced Message Queuing Protocol,高级消息队列协议。服务端通过AMQP协议接入云端,接收云端推送的消息。

  • MNS:将消息流转到指定阿里云消息服务(MNS)队列中,您的服务端从MNS队列中接收消息。

数据流转物联网平台规则引擎的数据流转功能,可将Topic中的数据转发至其他Topic或其他阿里云服务进行存储或处理。
场景联动场景联动是一种开发自动化业务逻辑的可视化编程方式。您可以通过可视化的方式定义设备之间联动规则,并将规则部署至云端或者边缘端。
一机一密每个设备烧录其唯一的设备证书(ProductKey、DeviceName和DeviceSecret)。当设备与物联网平台建立连接时,物联网平台对其携带的设备证书信息进行认证。
一型一密同一产品下所有设备可以烧录相同产品证书(即ProductKey和ProductSecret)。设备发送激活请求时,物联网平台其携带的产品证书信息进行认证,认证通过,下发该设备接入所需信息。设备再携带这些信息与物联网平台建立连接。
公共实例产品、设备、规则等资源均在实例中进行操作管理。

默认开通的物联网平台服务为公共实例。公共实例部署于阿里云经典网络。多账号共用一个公共实例,账号之间逻辑隔离。

企业版实例您购买的实例为企业版实例。部署于阿里云VPC网络的物联网平台。一个账号可购买多个企业版实例,且独享每个实例资源。



五、产品优势

企业基于物联网,通过运营设备数据实现效益提升已是行业趋势和业内共识。然而,企业在物联网系统的建设过程中往往存在各类阻碍。针对此类严重制约企业物联网发展的问题,阿里云物联网平台相比企业自建MQTT集群、MQTT服务器具有不可比拟的优势。

本文从能力、费用两方面将自建MQTT集群与阿里云物联网平台进行了对比,阿里云物联网平台具有更强大的能力,同时费用更低。


更强大的能力

自建MQTT集群与阿里云物联网平台的能力差异请参见下表。


项目阿里云物联网平台自建MQTT集群
性价比

可选多种付费模式:按量付费、包年包月。

随业务规模增长,可无感扩容。
预付费,需一次性投入购买IaaS资源。

随着业务规模增长,需要不断扩容。

设备接入

提供设备端SDK,快速连接设备上云,效率高。同时支持全球设备接入、异构网络设备接入、多环境下设备接入和多协议设备接入。

亿级设备规模,自动扩展,保证连接稳定性,设备消息到平台处理时长在50ms以内。

需要搭建基础设施,联合嵌入式开发人员与云端开发人员共同开发。开发工作量大、效率低。

架构上难以支撑百万级的设备规模,设备并发连接很多时难以保证平台稳定性,同时大量设备上下线会导致平台雪崩。

并发性百万并发能力,架构可水平扩展。核心消息处理系统采用无状态架构,无单点依赖,消息发送失败可自动重试。架构上难以支持万级的消息规模,消息上下行并发会给系统带来巨大的冲击。无法做到削峰填谷,影响高峰时正常业务运行。
安全性等保2.0版(三级等保),提供多重防护,保障设备数据安全。
  • 接入层使用高防IP防止DDoS攻击。

  • 设备认证保障设备安全与唯一性。

  • 设备数据传输链路支持TLS加密,保障数据不被篡改。

  • 核心密钥和数据加密存储防窃取。

  • 云盾护航和权限校验保障云端安全。

  • 平台安全由阿里云安全团队防护。

需要额外开发、部署各种安全措施,保障设备数据安全是个极大挑战。

如果缺少安全专业人才,安全意识不强,出现安全问题无法第一时间解决,造成的影响比较大。

可用性

去中心化,无单点依赖。拥有多数据中心支持。

承诺服务可用性达到99.9%,未达到可按标准理赔。故障处理1分钟发现、5分钟定位、20分钟解决。
如果迁移过程中出现死机,需自行发现并解决,再完成迁移,迁移时服务会中断。可用性无法保障。

可用性没有明确的量化标准,发生问题需要技术和运维团队介入排查,时间不能保证,损失自行承担。

易用性开通即用,提供控制台、设备SDK、云端SDK配合使用。

一站式设备管理、实时监控设备场景、无缝连接阿里云产品。可灵活简便地搭建复杂物联网应用。

支持物模型,无需自定义数据格式,解决数据结构化的问题,便于做数据分析和可视化。

完善的监控和告警配置,可及时感知到平台和业务的异常状况。

数据开放、API开放,打通设备到平台到业务服务器的数据链路。
需要购买服务器搭建负载均衡分布式架构,花费大量人力物力开发”接入+计算+存储”一整套物联网系统。

无控制台,前后端都需要自行搭建,设备连接状态、生命周期管理以及远程运维的实现很复杂。

设备出海全球8个地域,分布在亚洲、欧洲、北美洲。设备可在全球范围内就近接入。

使用阿里云域名加速能力,减少设备跨海通信延时。

数据安全合规通过GDPR认证。
海外部署成本高,难以运维,设备访问延时高,同时要考虑安全合规问题。
服务端同步调用支持RRPC同步响应。不支持
私有协议数据解析支持云上脚本托管,实现自定义协议解析。不支持,需要业务服务器处理。
数据流转通过规则引擎配置,支持多种云产品流转。不支持,需要研发编码实现。
设备影子支持。
OTA升级支持多维度设备OTA升级方式。
日志服务支持日志查询,海量日志存储。
实时监控支持实时监控运维图表展示,支持阈值报警、事件报警。

更低的费用

假设企业有1万台设备,每个设备每天在线16小时,平均每个设备5分钟1条消息,单消息报文大小512 B到1 KB之间,分别使用自建MQTT集群、阿里云物联网平台产生的费用如下表所示。


项目阿里云物联网平台自建MQTT集群(基于阿里云ECS)
云资源费用购买设备数为1万个、消息上下行TPS为100条/秒,规则引擎TPS为100条/秒、最小规格时序数据存储的实例即可。

总费用:6815元/年。


  • 至少需要2台ECS实例做互备容灾:2台4核CPU、8 GB内存、40 GB存储空间的ECS实例费用为7915元/年。

  • 关系型数据库RDS:最小规格,1核CPU、1 GB内存、20GB存储空间的RDS实例费用为1584元/年。

  • 负载均衡SLB:最小规格,1 Mbps带宽的SLB实例费用为352元/年。

总费用:9851元/年。

人力费用假设1个负责平台研发和运维工程师月薪8000元,占用该工程师20%的工作量,则人员成本为8000×12×20% = 19200元/年。

不考虑奖金和五险一金成本。

总计6815元/年29051元/年


六、应用场景

物联网平台支持海量设备稳定连接、实时在线,支持云端调用API低延时下发指令,提升各场景中用户体验。下文介绍物联网平台的典型应用场景。

共享充电宝

充电宝设备接入物联网平台后,会将其电量和借用状态等信息将上报到云端。充电宝用户扫码后,云端低延时向充电宝下发指令,使其弹出。同时,企业运营者能够实时获知充电宝的运行状况。

共享充电宝

智能音箱

播报音箱接入物联网平台后,用户扫码完成支付后,将支付金额实时通过音箱,向用户和商家进行语音播报。

智能音箱

智能家居

物联网平台广泛应用于智能家居电器,以智能插座为例,用户可远程查看插座使用情况,并控制其开关,避免因大功率电器过热,发生危险。

您可使用一机一密的方式稳定接入海量设备,防止黑客批量攻击。

智能插座

农业设备

使用各种传感器设备和通信网络,实时监控采集农业大棚中数据。传感器设备可通过RS485总线连接网关,再通过网关将其连接到物联网平台,实现在云端展示和管理数据。

农业设备

智能媒体屏

媒体屏连接物联网平台后,云上实时感知设备状态,媒体屏实时更新内容,实现媒体屏的智能精细化运营,起到降本增效的作用。

  • 云上可管理所有媒体屏,实现新媒体的智能化内容运营。

  • 企业服务实例可远程下发媒体内容,大大节省传统媒体屏人工维护成本。

  • 实例规格支持灵活扩展,能够支持业务的快速发展。

智能媒体屏


七、使用限制

使用物联网平台时,您会受到以下功能和服务性能限制。

产品与设备


限制项描述限制
标签个数一个产品、设备或分组最多可以添加的标签数。100
产品数量企业版实例:一个实例下最多可以创建的产品数。1,000
公共实例:一个阿里云账号下最多可以创建的产品数。1,000
设备数量一个产品最多可以添加的设备数。

说明

  • 为了及时了解产品下的设备数情况,避免影响新设备接入,建议您配置产品下已创建设备数阈值报警,具体操作请参见创建阈值报警规则

  • 如果设备数量超过此限制,请新建产品。

1,000,000
一个阿里云账号最多可以添加的设备数。

说明 若该限制数量不能满足您的业务需求,请提交工单说明您的需求。

10,000,000
网关与子设备一个网关下最多添加的子设备数。1,500
物模型功能定义一个产品最多可包含物模型模块(默认模块和自定义模块)总数。10
一个物模型模块最多可添加的功能总数。300
struct类的属性最多可添加的参数个数。50
当功能的数据类型为enum时,枚举项的最多个数。100
当功能的数据类型为text时,数据最大长度。10,240个字符
当功能的数据类型为array时,数组内的元素最多个数。512
所有服务和事件中最多可添加入参和出参的总数。300
一个服务中最多可添加的入参个数。100
一个服务中最多可添加的出参个数。100
一个事件中最多可添加的出参个数。100
最多可同时导入物模型模块文件的总数。10
一个物模型最多保存最近版本的个数。10
导入物模型时,一个JSON格式的物模型模块文件大小的上限。256 KB
导入物模型时,多个JSON格式文件压缩的ZIP文件大小的上限。2.5 MB
设备分组一个阿里云账号下最多可有父分组和子分组的总个数。1,000
一个分组内最多可添加设备的个数。100,000
一个设备最多可被添加到的分组个数。10
数据解析数据解析脚本文件大小的上限。128 KB
远程配置远程配置文件,仅支持JSON格式。文件大小的上限。64 KB
数据存储时间产品运行时,产生的属性、事件、服务数据存储时间为30天。超出30天的数据不再保存。

若您有更长时间的数据存储或分析需要,可以使用数据分析服务

30天
文件管理一个阿里云账号可存储在物联网平台服务器的文件总大小的上限。1 GB
一个设备最多可存储的文件数量。1,000
OTA升级一个阿里云账号下最多可包含的升级包数量。500
一个升级包文件大小限制。2,000 MB
单次批量升级最多可升级的设备数量。100,000

连接通信


限制项描述限制
设备接入限制使用同一个设备证书信息(相同的Productkey、DeviceName)。在同一时间,只能和物联网平台服务器建立一个连接。1
连接次数一个阿里云账号每秒最大MQTT连接请求数。500
保障设备请求连接不被限流的情形下,一个设备每分钟的最大连接请求次数。5
设备订阅数一个设备的最大订阅数。

超过订阅数的请求将会被直接拒绝。设备端可以通过验证SUBACK消息,确认请求是否成功。

100
请求数量一个阿里云账号每秒由设备端向物联网平台发送的请求数。10,000
一个阿里云账号每秒由物联网平台向设备端发送的请求数。2,000
消息通信限流一个设备每秒最多可上报的消息数量。

说明 MQTT的Pub上报消息限流,协议上没有任何应答。您可以通过日志服务发现设备被限流的警告。

  • QoS 0:30条/秒

  • QoS 1:10条/秒

一个设备接收下行消息的最大限制为50条/秒,同时受限于网络环境。

如果网络tcp write buffer拥堵,将直接返回错误。通过Pub接口发指令给设备,如果设备不能及时处理,将收到限流错误。

50条/秒
带宽一个连接每秒的吞吐量(带宽)最大限制。1,024 KB
缓存请求数物联网平台限制了每个客户端的最大未确认入站发布请求数。

达到此限制后,除非返回PUBACK消息,否则服务器不会再接收新的客户端发布请求。

100
消息存储时长QoS1消息的最大存储时间。

如果最大时间后,未从客户端接收到PUBACK消息,则会丢弃这些发布请求。

7天
MQTT消息长度MQTT单个发布消息最大长度。超过此大小的发布请求将被直接拒绝。256 KB
CoAP消息长度CoAP单个发布消息最大长度。超过此大小的发布请求将被直接拒绝。1 KB
MQTT保活MQTT连接心跳时间为30秒至1,200秒。心跳时间不在此区间内,服务器将会拒绝连接。

建议取值300秒以上。

从物联网平台发送CONNACK响应CONNECT消息时,开始心跳计时。收到PUBLISH、SUBSCRIBE、PING或 PUBACK消息时,会重置计时器。超过指定1.5倍心跳时间未收到消息(指定心跳时间乘以1.5),服务器将自动断开连接。

30秒~1,200秒
RRPC超时时间设备响应RRPC请求的超时时间。8秒
MQTT 5.0协议最多可添加用户自定义属性的总个数。20
一个用户自定义属性的Key和Value最大总长度。128个字符
请求和响应模式中,响应主题(Response Topic)和相关数据(Correlation Data)长度的上限相同。128个字符

Topic相关


限制项描述限制
自定义Topic类数量一个产品最多可以定义50个Topic类。50
权限设备只能对自己的Topic进行消息发布与订阅。
Topic长度Topic长度不能超过128字节,UTF-8编码字符。128字节
Topic类目一个Topic中最多可包含多少个层级类目,即Topic中斜杠的最大数量。7
订阅数一个订阅请求的最大订阅数。8
操作生效时间订阅和取消订阅都是操作10秒后生效,一次订阅永久生效。建议您提前订阅Topic以免漏失信息。

示例:设备向Topic A发送SUB请求,10秒后,订阅生效,设备开始收到实时消息,除非取消订阅,设备将一直接收Topic A的消息。

10秒
广播Topic要广播的消息主体报文大小不能超过64 KB。

需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。

64 KB
服务端SDK每分钟只可发一条全量广播消息。1条/分钟

设备影子


限制项描述限制
JSON层级设备影子JSON文档的最大层级深度。5
文件大小设备影子JSON文档的最大限制。16 KB
属性数量设备影子JSON文档的属性数量限制。128
每秒请求数一个设备每秒的最大请求数。20

云产品流转


限制项描述限制
规则数量一个阿里云账号最多可以设置1,000条规则。1,000
流转目标数量一条规则中转发数据的操作不能超过10个。10
规则引擎处理消息量云产品流转为一个阿里云账号提供1,000 QPS的数据处理能力。RAM用户共享主账号配额。

一条消息处理后可以写入多个云产品,写入云产品限制请参见下一条:写入云产品消息量。

对于被限流的消息,系统将自动重试处理,多次重试失败的数据会被丢弃。

1,000 QPS
写入云产品消息量

在目标云产品实例性能足够的情况下,云产品流转为一个阿里云账号提供2,000 QPS的数据转发能力。RAM用户共享主账号配额。

如果请求量超出该限制,或目标云产品写入耗时过高导致同一时刻写入请求量超出40个,数据转发会被限流。

转发到RocketMQ、RDS、TSDB等类型的云产品时,若云产品资源变化导致目的云产品无法访问,系统将停止执行转发,并显示规则异常信息;其他异常情况,系统将间隔1秒、3秒、10秒进行3次重试,3次重试均失败后,消息会被丢弃,同时会向您指定的转发错误数据的目标云产品发送一条错误记录。

2,000 QPS
流转目标要求数据转发依赖目标云产品,需确保目标云产品实例正常。目标云产品的实例宕机、欠费、参数错误(如授权变更、值非法)、配置错误等异常状况将会导致消息流转失败。
消息去重数据流转时,为确保消息送达,同一条消息可能重复发送,直到客户端返回ACK或消息过期。同一条消息的消息ID相同,您可根据消息ID去重。

服务端订阅

AMQP服务端订阅使用限制:


限制项描述
认证超时建立连接之后,需要立刻发送认证请求。如果15秒内没有认证成功,服务器将主动关闭连接。
数据超时服务端与物联网平台建立连接时,需传入心跳时间(AMQP协议参数idle-timeout),取值范围为30~300秒。 如果超过心跳时间,连接上无任何帧通信,物联网平台将关闭连接。

建立连接后,用户服务端需在心跳时间内发送PING包来维持连接。若没有在心跳时间内发送PING包,物联网平台将断开连接。

说明 使用阿里云提供的SDK,建立连接后,无需发送PING包维持连接。SDK存在保活心跳,只需保证主进程不退出即可。

失败推送重试策略

由于消费客户端离线、消息消费慢等原因,消息不能实时消费,而进入堆积队列。

  • 消费客户端重新上线并恢复稳定消费能力后,物联网平台重试推送堆积消息。

  • 如果客户端对重试推送的消息消费失败,可能导致堆积队列阻塞。按大约一分钟间隔,物联网平台向客户端再次重试推送。

消息保存条数一个消费组最多可堆积1亿条消息。
消息保存时长1天。
实时消息推送限流一个连接限流1,000 TPS。您可通过增加连接数扩容,连接数最大为64个。
堆积消息推送限流一个消费组限流200 TPS。

说明 为避免大量消息堆积,请确保消费客户端在线,并对平台推送的消息及时ACK回复。

一个产品可关联的消费组数量最多10个。
一个消费组可关联的产品数量最多1,000个。
消费组个数限制一个阿里云账号最多创建1,000个消费组。
消费端个数限制一个消费组最多支持64个消费端。
连接次数限制一个消费组1分钟内,消费端请求连接不超过100次。

说明 消费端是指接收物联网平台消息的AMQP客户端,而不是设备端。