文档中心>消息队列 MQTT 版>产品简介>产品约束与使用配额

产品约束与使用配额

最近更新时间:2025-08-22 17:48:52

我的收藏
为了保证集群的性能稳定,腾讯云消息队列 MQTT 版根据不同的售卖规格差异进行一些使用限制,不同售卖规格间的主要功能差异请参考 产品系列。以下介绍您在使用 MQTT 时可能遇到的不同维度的限制。

售卖规格相关限制

限制项
具体限制说明
超限制后的行为
建议
集群 TPS 限制
按照购买页选择的规格进行严格限制。
注意:QoS 和 cleanSession 参数的设置会影响 TPS 的计算,1 TPS并不完全对等1条消息的生产/发送,详见 计算规格说明
超出 TPS 限制后,消息的生产/消费请求会被拒绝,并产生报错。
在控制台可以查看相关的限流指标,详见 监控说明
在购买时请根据实际情况评估流量,当限流发生时,您可以选择升级集群规格 来应对突发流量。
集群客户端连接数量
按照购买页选择的规格进行严格限制。
客户端连接被拒绝,连接请求 (CONNECT) 报错。
在购买时请根据实际情况评估客户端数量,当在线客户端达到上限时,您可以选择 升级集群规格
集群订阅数量
30 × 最大客户端连接数量,集群订阅数量包含共享订阅和自动订阅的数量
新的客户端订阅被拒绝,订阅请求 (SUBSCRIBE) 报错。
当多个订阅场景出现限额冲突时,将按照“非 Clean Session 订阅 > 自动订阅规则 > 客户端手动订阅 ”的优先级进行限流,详见自动订阅说明
单个客户端(client id)订阅 Topic Filter 数
30,集群订阅数量包含共享订阅和自动订阅的数量
新的客户端订阅被拒绝,订阅请求 (SUBSCRIBE) 报错。
当多个订阅场景出现限额冲突时,将按照“非 Clean Session 订阅 > 自动订阅规则 > 客户端手动订阅 ”的优先级进行限流,详见自动订阅说明
集群新建连接速率
集群最大在线客户端连接数量的 1/100。如集群的连接数上限为 10000,则每秒允许的新建客户端连接数为 100。最多每秒可以新建 100 个连接。
客户端连接被拒绝,连接请求 (CONNECT) 报错。

数据面服务使用限制

为了保证服务端的稳定性和性能,同时考虑开源协议的标准和规范,腾讯云消息队列 MQTT 版进行了以下限制。如果某些限制项目和当前的使用场景冲突,可以根据表格中的建议进行相应的操作。
对于铂金版的集群,部分限制项可以通过工单服务和专家支持进行调整。
限制项分类
限制细项
具体限制说明
超限制后的行为
建议
资源命名
客户端 ID 和 客户端别名
单集群内唯一,如果不同客户端或设备使用同一个客户端 ID,则会出现互相抢占(taken over)导致下线的情况。
字符要求:仅支持数字 0~9、字母 a~z 或 A~Z 与 -_@ 三种特殊字符
长度:128 字节
客户端连接被拒绝,连接请求 (CONNECT) 将被拒绝。
如果实际需求超过当前规格限制可以通过工单 联系我们
Topic Name
MQTT 协议中定义消息传输的通道和路径。
字符要求:任意 UTF-8 编码字符
长度:256 字节
达到限额后,客户端发送消息请求 (PUBLISH) 将被拒绝。
Topic 层级数
8,即Topic 名称最多支持使用 7 个 / 符号
达到限额后,客户端发送消息请求 (PUBLISH) 或者订阅请求 (SUBSCRIBE) 将被拒绝。
消息属性和消息体
消息体大小
4MiB,仅计算 Payload 大小
发送消息时会出现消息大小超限额的报错。
如果实际需求超过当前规格限制可以通过工单 联系我们
Content Type 属性长度
256 字节,仅 MQTT 5.0 涉及
客户端连接(CONNECT)被拒绝或者发送消息请求 (PUBLISH) 报错。
User Property 属性长度
8 KB,仅 MQTT 5.0 涉及
超过限制的属性会被忽略
Correlation Data 属性长度
8 KB,仅 MQTT 5.0 涉及
超过限制的属性会被忽略
消息除消息体外其他属性长度
16 KB
超过限制的属性会被忽略
Topic Alias 最大数量
单个客户端最大 10 个
超出数量的客户端连接会被断开
消息保存规则
暂未消费的消息保存时间(含保留消息)
3 天
超出时间的消息会被删除。
铂金版的集群可以通过工单服务和专家支持进行调整。
单集群保留消息最大数量
10000
达到这个上限后,新到达的服务端的保留消息发送请求 (PUBLISH) 将被拒绝。
消息收发
单集群服务端接收的最大 Unack 消息数(QoS >0)
对于 QoS 为 1 和 2 的消息,单个客户端未确认的消息数最多为 8
服务端收到超过限额的消息会断开与客户端的连接。
铂金版的集群可以通过工单服务和专家支持进行调整。
单集群服务端发送的最大 Unack 消息数(QoS >0)
对于 QoS 为 1 和 2 的消息,单个客户端未确认的消息数最多为 16。
使用 MQTT 5 协议的客户端可以通过 Receive Maximum 调整限制,上限为 128
达到限额后,服务端将停止发送消息到客户端。
HTTP 接口
单个 HTTP 连接占用一个连接数规格。单次调用按照 QoS 1 消息计算 TPS,查看接口使用详情
达到限额后,调用会报错。
消息重试策略
对于 QoS 为 1 和 2 的消息,默认按照 120 秒的重试间隔无限重试。
-
单集群排队消息数
无数量限制,但受消息保留时间限制
-
单集群保留消息发送消费速率
100 条/秒
达到限额后,消息发送请求会报错。服务端会暂停发送消息到客户端
客户端连接
客户端心跳的检查周期
(Keep Alive Interval)
30-1200 秒,根据协议规定,若服务端在设置的 Keep Alive 1.5 倍时间内未收到任何消息,将判定当前连接失效。
如果客户端设置的时间超出这个时间默认也为 1200 秒,则认为是 1200 秒;如果客户端设置的时间低于 30 秒,则认为是 30 秒。
-
每个客户端 ID 新建连接数
每秒 1 次,每分钟 10 次
客户端连接被拒绝,连接请求 (CONNECT) 报错。
-
HTTP 查询在线客户端的在线状态
单个 HTTP 连接占用一个连接数规格。单次消息调用按照 QoS 1 消息计算 TPS,查看接口使用详情
超出限制后,接口调用失败
在购买时请根据实际情况评估客户端数量,当在线客户端达到上限时,您可以选择 升级集群规格
WebSocket 连接时间
24小时
超出连接时间后自动断连
-
离线客户端状态保留时间

默认保留 1 天
可以使用 MQTT 5 协议客户端设置 Session Expiry Interval 来调整保留时间,上限为 3 天
超出保留时间的客户端状态会被删除。
铂金版的集群可以通过工单服务和专家支持进行调整
离线客户端状态数量限制
离线客户端与在线客户端共同占用集群客户端连接数量限制
当在线客户端 + 离线客户端数量大于集群客户端连接数量限制时,离线客户端状态将被清理;
当在线客户端数量大于集群客户端连接数量限制时,超出限制的客户端连接会被拒绝。
证书
单集群服务端证书数量
3
-
铂金版的集群可以通过工单服务和专家支持进行调整。
单集群 CA 证书数量
32
超出后自动注册或手动注册失败
每秒注册的客户端证书限额
15
超出后注册失败
自动订阅
自动订阅规则数
10
无法创建新的自动订阅规则
铂金版的集群可以通过工单服务和专家支持进行调整。
单个自动订阅规则内订阅数量
20
规则内无法新增新的订阅规则,添加后无效
共享订阅
单集群共享订阅组数量上限
20
达到限额后,客户端订阅消息请求 (SUBSCRIBE) 报错
铂金版的集群可以通过工单服务和专家支持进行调整。
单个共享订阅组中订阅表达式数量上限
10,即 $share/{ShareName}/{filter} 中 filter 的数量
达到限额后,客户端订阅消息请求 (SUBSCRIBE) 报错
单个共享订阅 Group 订阅和取消订阅请求上限总和 TPS
10
达到限额后,客户端订阅消息请求 (SUBSCRIBE) 和取消订阅请(UNSUBSCRIBE)求报错
单个共享订阅组下的客户端数量
1024
达到限额后,客户端订阅消息请求 (SUBSCRIBE) 报错
其他功能
单个客户端的传播属性数量
10 对 Key: Value 的组合,详见传播属性
超出后会新增属性的请求会报失败错误,需要调用接口删除对应的属性后再次添加
单个集群的设备身份数量
为集群“在线连接数”规格的5倍,如2000 TPS, 2000 连接数的集群,最多可以注册1万个设备身份,详见设备身份注册表
超出后调用注册设备身份接口会报错

MQTT 协议使用限制

当前 TDMQ MQTT 支持 V3.1.1 的全部特性,支持 5.0 协议的除以下的所有特性:
1. 暂不支持 AUTH 请求;
2. 暂不支持指定 Will Delay Interval
3. 暂不支持 Server Redirection
4. 当消息的 QoS = 2 时,在部分极端情况下,如网络抖动等,会出现消息重复的情况,必要时请做好消息的幂等处理 。