全部产品
Search
文档中心

云消息队列 MQTT 版:使用限制

更新时间:Aug 07, 2024

本文为您介绍云消息队列 MQTT 版对某些具体指标的约束和规范,您在使用云消息队列 MQTT 版时请不要超过相应的限制值,以免程序出现异常。具体的限制项和限制值请参见下表。

如果您购买了铂金版的云消息队列 MQTT 版实例,则可按需定制部分指标(下表中已标出),咨询定制请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。

实例限制

限制项

限制值

说明

实例名称

  • 名称长度:3~64个字符

  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_),大小写不敏感。

  • 唯一性:同一地域下实例名称必须唯一。

创建实例时不支持自定义实例名称,新创建实例的名称默认和实例ID一致,您可以在云消息队列 MQTT 版控制台修改。

单实例消息收发TPS

根据购买的规格进行限流,云消息队列 MQTT 版消息收发TPS超过规格上限后,客户端(包含开源MQTT客户端和云端SDK)可能会出现连接断开、响应超时和消息丢弃等情况,不保证消息可靠到达。

在MQTT客户端场景下,单MQTT客户端消息收发量一般不会很大,且某些SDK设计上不支持,建议单MQTT客户端消息TPS不超过20。如您所需的消息收发量较大,且是服务端使用场景,请考虑使用云消息队列 RocketMQ 版客户端。

单实例在线连接数

根据购买的规格进行限流,超过规格上限后新建连接可能被拒绝。

云消息队列 MQTT 版会默认提供在线用户连接数的监控报警。请合理调整监控阈值。

单实例订阅关系数

当订阅数超过规格限制后,新增的订阅可能会失败,订阅关系对应的客户端连接可能会断开,且不保证订阅关系完整。

云消息队列 MQTT 版会默认提供订阅关系数的监控报警。请合理调整监控阈值。

实例域名接入点对应的IP地址

该IP地址随时可能更换,请勿假设IP地址固定。在以下使用情况中出现的问题云消息队列 MQTT 版产品方概不负责:

  • 客户端不使用域名接入而是使用IP地址接入,产品方更新了域名解析导致原有IP地址失效。

  • 客户端网络对IP地址设置网络防火墙策略,产品方更新了域名解析后新IP地址被您的防火墙策略拦截。

Topic限制

限制项

限制值

说明

Topic名称

  • 名称长度:3~64个字符

    说明

    这里的Topic长度指的是父级Topic和子级Topic的总长度。

  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_),大小写不敏感。

  • 唯一性:同一实例下父级Topic名称必须唯一。

使用云消息队列 MQTT 版收发消息时,Topic长度不得低于或超过最值限制,否则会导致无法发送或者订阅。

单实例父级Topic数量

25个

如果默认限制不满足,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。

说明

子级Topic数量暂无限制,为了业务平稳运行,建议子级Topic数量不要超过1000。

Topic跨地域使用

不支持

云消息队列 MQTT 版配置了相关规则实现与云消息队列 RocketMQ 版的数据互通,则相关资源应处于同一地域。

客户端限制

限制项

限制值

说明

Client ID

  • 名称长度:不超过64个字符

  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_)。

使用云消息队列 MQTT 版收发消息时,Client ID不得超过限制,否则会导致连接被断开。

Group ID

  • 名称长度:7~64个字符

  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_),且必须以“GID_”或者“GID-”开头。

  • 唯一性:同一实例下Group ID必须唯一。

使用云消息队列 MQTT 版收发消息时,Group ID长度不得低于或超过最值限制,否则会导致无法发送或者订阅。

Device ID

  • 名称长度:Client ID格式为:<GroupID>@@@<DeviceID>,Device ID的长度限制为动态值,您需要保证总的Client ID长度不超过64个字符。

  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_)。

  • 唯一性:同一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分钟。

消息收发限制

限制项

限制值

说明

消息大小

64 KB

消息负载不得超过该限制,否则消息会被丢弃。

铂金版实例可支持定制。如需定制,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。

消息保存时间

3天

仅当QoS=1且cleanSession=false时,云消息队列 MQTT 版才会保留离线消息,且最多保留3天,超过时间将自动滚动删除。Qos和cleanSession的详细信息,请参见名词解释

铂金版实例可支持定制,如需定制,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。

QoS和cleanSession

不支持QoS=2且cleanSession=false的配置

使用云消息队列 MQTT 版收发消息时:

  • 如果cleanSession=true,那么QoS可以设置为0、1或2。

  • 如果cleanSession=false,那么QoS不可设置为2,云消息队列 MQTT 版暂不支持该配置。

Token有效期

30天

调用申请Token接口时,如果ExpireTime的取值大于30天,接口仍然调用成功返回Token,无报错,但实际有效期仍为30天。

离线消息可见时间

10秒

服务端首次推送消息后必须要等待超时或者失败后才能确认该消息是否转化为离线消息,对应的延迟时间通常是5秒~10秒。

离线消息存储数量

100万条

服务端会限制每个实例存储的离线消息数量。超过该限制后,服务端会从最早的消息开始清理。因此,请合理使用持久化订阅模式,以免产生过多无用的离线消息。

如果默认限制不满足,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。