本文介绍了物联网平台的使用限制及性能指标。
设备接入
产品数量
地域
描述
限制
德国(法兰克福)、美国(硅谷)
一个阿里云账号下最多可以创建的产品数。
1,000
华东2(上海)、新加坡、日本(东京)、美国(弗吉尼亚)
标准型、尊享型和公共实例:一个实例下最多可以创建的产品数。
1,000
设备数量
说明若设备限制数量不能满足您的业务需求,请提交工单说明您的需求。
网关子设备
一个网关设备下最多添加的子设备数为2,000。
一个网关设备下动态注册子设备时,单次动态注册的子设备数量不能超过30个。
一个网关设备发送子设备批量上下线请求时,单个批次上下线的子设备数量不能超过50个。
一个网关设备代理子设备上线的QPS限制为200。
网关设备及其子设备的消息限流,请参见连接通信中的《消息通信限流》。
设备管理
限制项 | 描述 | 限制 |
物模型功能定义 | 一个产品最多可包含物模型模块(默认模块和自定义模块)总数。 | 200 |
一个物模型模块最多可添加的功能总数。 | 300 | |
struct类的属性最多可添加的参数个数。 | 50 | |
当功能的数据类型为enum时,枚举项的最多个数。 | 100 | |
当功能的数据类型为text时,数据最大长度。 | 10,240个字符 | |
当功能的数据类型为array时,数组内的元素最多个数。 | 512 | |
所有服务和事件中最多可添加入参和出参的总数。 | 300 | |
一个服务中最多可添加的入参个数。 | 100 | |
一个服务中最多可添加的出参个数。 | 100 | |
一个事件中最多可添加的出参个数。 | 100 | |
最多可同时导入物模型模块文件的总数。 | 20 | |
一个物模型最多保存最近版本的个数。 | 10 | |
导入物模型时,一个JSON格式的物模型模块文件大小的上限。 | 512 KB | |
导入物模型时,一个JSON格式的物模型模块文件中,有效字符数量大小的上限。 有效字符,指JSON格式内容中,除换行和对齐字符之外的字符。 | 256 KB | |
导入物模型时,多个JSON格式文件压缩的ZIP文件大小的上限。 | 2.5 MB | |
调用物模型相关API时,如果请求参数ThingModelJson中ARRAY和STRUCT类型数据相互嵌套,最多支持递归嵌套的层级数。 例如ARRAY中只能使用STRUCT,此时该STRUCT中不能再有ARRAY或STRUCT类型数据。 | 2级(父和子) | |
标签个数 | 一个产品、设备或分组最多可以添加的标签数。 | 100 |
设备分组 | 一个阿里云账号下最多可有父分组和子分组的总个数。 | 1,000 |
一个分组内最多可添加设备的个数。 | 100,000 | |
一个设备最多可被添加到的分组个数。 | 10 | |
数据解析 | 数据解析脚本文件大小的上限。 | 128 KB |
远程配置 | 远程配置文件,仅支持JSON格式。文件大小的上限。 | 64 KB |
物模型数据存储时长 | 设备运行时产生的属性、事件、服务的数据存储时长为30天,超出30天的数据不再保存。 | 30天 |
文件管理 | 一个实例下,可存储的文件总大小的上限。 | 1 GB |
设备端通过MQTT协议上传的单个文件大小的上限。 | 16 MB | |
一个设备最多可存储的文件数量。 | 1,000 | |
OTA升级 | 一个阿里云账号下的一个实例中,最多可包含的升级包数量。 | 500 |
使用HTTPS协议下载升级包时,一个升级包文件大小的限制。 | 1,000 MB | |
使用MQTT协议下载升级包时,一个升级包文件大小的限制。 一个升级包中只能包含一个文件。 | 16 MB | |
单次批量升级最多可升级的设备数量。 重要
若设备限制数量不能满足您的业务需求,请提交工单说明您的需求。 |
| |
设备任务 | 一个阿里云账号下,单个地域最多可添加设备任务个数。 | 10,000 |
连接通信
限制项 | 描述 | 限制 |
设备接入限制 | 使用同一个设备证书信息(相同的Productkey、DeviceName)。在同一时间,只能和物联网平台服务器建立一个连接。 | 1 |
连接次数 | 一个阿里云账号每秒最大MQTT连接请求数。 | 500 |
保障设备请求连接不被限流的情形下,一个设备每分钟的最大连接请求次数。 | 5 | |
设备订阅数 | 一个设备的最大订阅数。 超过订阅数的请求将会被直接拒绝。设备端可以通过验证SUBACK消息,确认请求是否成功。 | 100 |
请求数量 | 旧版公共实例:一个阿里云账号每秒由设备端向物联网平台发送的请求数。 | 10,000 |
旧版公共实例:一个阿里云账号每秒由物联网平台向设备端发送的请求数。 | 2,000 | |
新版公共实例:一个实例下每秒上下行消息请求数。 | 5 | |
企业版实例:一个实例下每秒上下行消息请求数,由购买的消息上下行TPS规格决定。 购买企业版实例说明,请参见购买企业版实例。 | ||
消息通信限流 | 一个设备每秒最多可上报的QoS 0或QoS 1消息数量。 说明 MQTT的Pub上报消息限流,协议上没有任何应答。您可以通过日志服务发现设备被限流的警告。 | 30条/秒 |
一个设备接收下行消息的最大限制为50条/秒,同时受限于网络环境。 如果网络tcp write buffer拥堵,会直接返回错误。通过Pub接口发指令给设备,如果设备不能及时处理,会收到限流错误。 | 50条/秒 | |
带宽 | 一个连接每秒的吞吐量(带宽)最大限制。 | 8 Mbps |
缓存请求数 | 物联网平台限制了每个客户端的最大未确认入站发布请求数。 达到此限制后,除非返回PUBACK消息,否则服务器不会再接收新的客户端发布请求。 | 100 |
消息存储时长 | QoS1消息的最大存储时间。 如果最大时间后,未从客户端接收到PUBACK消息,则会丢弃这些发布请求。 | 7天 |
MQTT消息长度 | MQTT单个发布消息最大长度。超过此大小的发布请求会被直接拒绝。 | 256 KB |
CoAP消息长度 | CoAP单个发布消息最大长度。超过此大小的发布请求会被直接拒绝。 | 1 KB |
MQTT保活 | MQTT连接心跳时间为30秒至1,200秒。心跳时间不在此区间内,服务器会拒绝连接。 建议取值300秒以上。默认值为1,200秒。设备端保活心跳设置,请参见MQTT接入示例。 从物联网平台发送CONNACK响应CONNECT消息时,开始心跳计时。收到PUBLISH、SUBSCRIBE、PING或 PUBACK消息时,会重置计时器。物联网平台每隔30秒定时检测一次设备的保活心跳,设备上线时间点距离最新定时检测时间点的时间,是定时检测的等待时间。定义最大超时时间为: | 30秒~1,200秒 |
RRPC超时时间 | 设备响应RRPC请求的超时时间。 | 8秒 |
物模型属性上报 | 一个设备单次最多可上报物模型属性数量。 | 500 |
物模型历史属性和事件上报 | 一个实例下,单次最多同时上报物模型历史数据的设备数量。 | 50 |
一个设备单次最多上报物模型属性数量。 | 30 | |
一个设备单次最多上报物模型事件数量。 | 20 | |
物模型属性和事件批量上报 | 一个设备单次最多可上报属性和事件的数据条数。 一个属性或一个事件的多个值计为多条数据。 | 1,000 |
MQTT 5.0协议 | 最多可添加用户自定义属性的总个数。 | 20 |
一个用户自定义属性的Key和Value最大总长度。 | 128个字符 | |
请求和响应模式中,响应主题(Response Topic)和相关数据(Correlation Data)长度的上限相同。 | 128个字符 |
Topic相关
限制项 | 描述 | 限制 |
自定义Topic类数量 | 一个产品下最多可以定义Topic类的个数。 | 200 |
权限 | 设备只能对自己的Topic进行消息发布与订阅。 | 无 |
Topic长度 | Topic长度不能超过160字节,UTF-8编码字符。 | 160 |
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 |
消息转发处理消息量 |
RAM用户共享阿里云账号配额。 消息转发TPS说明:
同一秒内,可能n条消息流转至消息转发,然后从消息转发流转到m个目的地,消息转发TPS计算规则为:
说明
|
|
流转目标要求 | 数据转发依赖目标云产品,需确保目标云产品实例正常。目标云产品的实例宕机、欠费、参数错误(如授权变更、值非法)、配置错误等异常状况会导致消息流转失败。 | 无 |
消息去重 | 数据流转时,为确保消息送达,同一条消息可能重复发送,直到客户端返回ACK或消息过期。同一条消息的消息ID相同,您可根据消息ID去重。 | 无 |
云产品流转(新版)
云产品流转(新版)消息相关的限制与云产品流转(旧版)中消息相关的限制相同。
限制项 | 描述 | 限制 |
解析器 | 一个实例最多包含解析器总数。 | 1,000 |
数据源 | 一个解析器最多关联数据源总数。 | 1 |
一个数据源最多包含Topic总数。 | 1,000 | |
数据目的 | 一个解析器最多关联数据目的总数。 | 10 |
一个数据目的最多包含的操作总数。 | 1 | |
一个解析器最多关联异常数据目的总数。 | 1 | |
解析脚本 | 一个解析器的脚本内容大小限制。 | 120 KB |
一个解析器的脚本中循环执行流转函数的最大次数。 流转函数详细信息,请参见流转数据到数据目的函数。 | 100 |
服务端订阅
AMQP服务端订阅使用限制:
限制项 | 描述 |
认证超时 | 建立连接之后,需要立刻发送认证请求。如果15秒内没有认证成功,服务器会主动关闭连接。 |
数据超时 | 服务端与物联网平台建立连接时,需传入心跳时间(AMQP协议参数idle-timeout),取值范围为30~300秒。 如果超过心跳时间,连接后无任何帧通信,物联网平台会关闭连接。 建立连接后,用户服务端需在心跳时间内发送PING包来维持连接。若没有在心跳时间内发送PING包,物联网平台会断开连接。 说明 使用阿里云提供的SDK,建立连接后,无需发送PING包维持连接。SDK存在保活心跳,只需保证主进程不退出即可。 |
ACK超时 | AMQP服务端转发消息到客户端后,如果30秒内未收到客户端回执消息,计为ACK超时。 |
失败推送重试策略 | 由于消费客户端离线、消息消费慢等原因,消息不能实时消费,而进入堆积队列。
|
消息保存条数 | 一个消费组最多可堆积1亿条消息。 |
消息保存时长 | 1天。 |
实时消息推送限流 | 一个连接限流1,000 TPS。您可通过增加连接数扩容,连接数最大为128个。 |
堆积消息推送限流 | 一个消费组限流200 TPS。 说明 为避免大量消息堆积,请确保消费客户端在线,并对平台推送的消息及时ACK回复。 |
一个产品可关联的消费组数量 | 最多10个。 |
一个消费组可关联的产品数量 | 最多1,000个。 |
一个消费组可订阅的Topic数量 | 最多200个。 说明 订阅一个使用通配符的Topic,计为一个Topic。例如订阅产品下的Topic: |
消费组个数限制 | 一个阿里云账号最多创建1,000个消费组。 |
消费端个数限制 | 一个消费组最多支持128个消费端。 |
连接次数限制 | 一个消费组1分钟内,消费端请求连接不超过100次。 说明 消费端是指接收物联网平台消息的AMQP客户端,而不是设备端。 |
MNS服务端订阅使用限制,请参见MNS使用限制中,队列相关使用限制。
数据服务
仅华东2(上海)、华北2(北京)、华南1(深圳)、新加坡和美国(弗吉尼亚)地域的标准型和尊享型实例下支持数据服务的全部功能。
日本(东京)、德国(法兰克福)、美国(硅谷)地域仅支持数据服务中的时序存储功能。
数据服务对应功能的使用受已购买实例下资源规格限制。
云端API限制
调用云端API的每秒请求数(QPS)限制,请参见具体API文档。
若您调用接口收到限流报错,如公共错误中28~30类型报错,可以重新尝试调用。