使用限制
本文为您介绍云消息队列 MQTT 版对某些具体指标的约束和规范,您在使用云消息队列 MQTT 版时请不要超过相应的限制值,以免程序出现异常。具体的限制项和限制值请参见下表。
如果您购买了铂金版的云消息队列 MQTT 版实例,则可按需定制部分指标(下表中已标出),咨询定制请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。
实例限制
限制项 | 限制值 | 说明 |
实例名称 |
| 创建实例时不支持自定义实例名称,新创建实例的名称默认和实例ID一致,您可以在云消息队列 MQTT 版控制台修改。 |
单实例消息收发TPS | 根据购买的规格进行限流,云消息队列 MQTT 版消息收发TPS超过规格上限后,客户端(包含开源MQTT客户端和云端SDK)可能会出现连接断开、响应超时和消息丢弃等情况,不保证消息可靠到达。 | 在MQTT客户端场景下,单MQTT客户端消息收发量一般不会很大,且某些SDK设计上不支持,建议单MQTT客户端消息TPS不超过20。如您所需的消息收发量较大,且是服务端使用场景,请考虑使用云消息队列 RocketMQ 版客户端。 |
单实例在线连接数 | 根据购买的规格进行限流,超过规格上限后新建连接可能被拒绝。 | 云消息队列 MQTT 版会默认提供在线用户连接数的监控报警。请合理调整监控阈值。 |
单实例订阅关系数 | 当订阅数超过规格限制后,新增的订阅可能会失败,订阅关系对应的客户端连接可能会断开,且不保证订阅关系完整。 | 云消息队列 MQTT 版会默认提供订阅关系数的监控报警。请合理调整监控阈值。 |
实例域名接入点对应的IP地址 | 无 | 该IP地址随时可能更换,请勿假设IP地址固定。在以下使用情况中出现的问题云消息队列 MQTT 版产品方概不负责:
|
Topic限制
限制项 | 限制值 | 说明 |
Topic名称 |
| 使用云消息队列 MQTT 版收发消息时,Topic长度不得低于或超过最值限制,否则会导致无法发送或者订阅。 |
单实例父级Topic数量 | 25个 | 如果默认限制不满足,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。 说明 子级Topic数量暂无限制,为了业务平稳运行,建议子级Topic数量不要超过1000。 |
Topic跨地域使用 | 不支持 | 云消息队列 MQTT 版配置了相关规则实现与云消息队列 RocketMQ 版的数据互通,则相关资源应处于同一地域。 |
客户端限制
限制项 | 限制值 | 说明 |
Client ID |
| 使用云消息队列 MQTT 版收发消息时,Client ID不得超过限制,否则会导致连接被断开。 |
Group ID |
| 使用云消息队列 MQTT 版收发消息时,Group ID长度不得低于或超过最值限制,否则会导致无法发送或者订阅。 |
Device ID |
| 使用云消息队列 MQTT 版收发消息时,Device ID不得超过限制,否则会导致连接被断开。 |
单个客户端订阅Topic数量 | 30个 | 每个客户端最多允许同时订阅30个Topic,超过该限制会导致无法新增新的订阅关系。铂金版实例可支持定制,如需定制,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。 计算订阅Topic数量时,一个包含通配符的订阅计算为一个订阅数量;同一父级Topic下不同子级的Topic订阅被计算为不同的Topic数量。例如:A/#被计算为一个订阅数量。A/#和A/a1/#被计算为2个Topic订阅数量。 |
通配符订阅关系数量 | 每个父级Topic下仅允许100个通配符订阅关系。 | 服务端会限制每个父级Topic生效的通配符订阅关系的数量,超过限制后服务端会只加载100个,可能会造成部分订阅的客户端收不到消息。请严格控制数量。例如:对于同一个父级Topic A,订阅的A/#和A/a1/#以及A/a2/#计算为3个订阅关系数量。 |
心跳最大时间间隔 | 8分钟 | 使用云消息队列 MQTT 版收发消息时,支持的最大心跳时间间隔为8分钟。 |
消息流入、流出、客户端上下线规则限制
限制项 | 限制值 | 说明 |
单实例规则数量 | 100 | 如果默认限制不满足,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。 |
规则去重限制 | 同一个内部资源同种规则只能创建一个规则。 | 例如一个Group ID只能创建一个上下线通知规则,一个MQTT Topic只能创建一个数据流入规则和一个数据流出规则。 |
地域限制 | 不支持跨地域创建规则,规则的数据源和数据目标所属的实例必须处于同一地域。 | 例如,创建数据流出规则,数据源云消息队列 MQTT 版实例属于华东1(杭州)地域,则数据目标云消息队列 RocketMQ 版只能选择华东1(杭州)地域的实例。 |
云消息队列 MQTT 版实例版本 | 仅新版本的实例支持。 | 新购的云消息队列 MQTT 版实例默认为新版本实例,旧版实例已不支持购买。 |
云消息队列 RocketMQ 版实例版本 | 仅4.0系列实例支持 | 云消息队列 MQTT 版和云消息队列 RocketMQ 版通过消息流入或消息流出规则进行数据互通时,云消息队列 RocketMQ 版仅4.0系列实例支持消息流入或流出规则,5.0系列实例不支持。 |
消息收发限制
限制项 | 限制值 | 说明 |
消息大小 | 64 KB | 消息负载不得超过该限制,否则消息会被丢弃。 铂金版实例可支持定制。如需定制,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。 |
消息保存时间 | 3天 | 仅当QoS=1且cleanSession=false时,云消息队列 MQTT 版才会保留离线消息,且最多保留3天,超过时间将自动滚动删除。Qos和cleanSession的详细信息,请参见名词解释。 铂金版实例可支持定制,如需定制,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。 |
QoS和cleanSession | 不支持以下配置:
| 使用云消息队列 MQTT 版收发消息时:
|
Token有效期 | 30天 | 调用申请Token接口时,如果ExpireTime的取值大于30天,接口仍然调用成功返回Token,无报错,但实际有效期仍为30天。 |
离线消息可见时间 | 10秒 | 服务端首次推送消息后必须要等待超时或者失败后才能确认该消息是否转化为离线消息,对应的延迟时间通常是5秒~10秒。 |
离线消息存储数量 | 100万条 | 服务端会限制每个实例存储的离线消息数量。超过该限制后,服务端会从最早的消息开始清理。因此,请合理使用持久化订阅模式,以免产生过多无用的离线消息。 如果默认限制不满足,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。 |
云端API限制
调用云端API的每秒请求数(QPS)限制,请参见QPS限制。