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

如果您购买了铂金版的微消息队列MQTT版实例,则可按需定制部分指标(下表中已标出),咨询定制请提交工单

实例限制

限制项 限制值 说明
实例名称
  • 名称长度:3~64个字符
  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_),大小写不敏感。
  • 唯一性:同一地域下实例名称必须唯一。
创建实例时不支持自定义实例名称,新创建实例的名称默认和实例ID一致,您可以在微消息队列MQTT版控制台修改。
单实例消息收发TPS
  • 包年包月实例:根据购买的规格进行限流,超过规格后将不保证消息可靠到达。
  • 按量付费实例:默认最大TPS为1万。超过限制可能会被系统限流。若需要定制,请提交工单申请。
在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个 如果默认限制不满足,请提交工单申请。
Topic跨地域使用 不支持 微消息队列MQTT版配置了相关规则实现与消息队列RocketMQ版的数据互通,则相关资源应处于同一地域。详细信息,请参见Topic地域化

客户端限制

限制项 限制值 说明
Client ID
  • 名称长度:0~64个字符
  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_)。
使用微消息队列MQTT版收发消息时,Client ID不得超过限制,否则会导致连接被断开。
单个客户端订阅Topic数量 30个 每个客户端最多允许同时订阅30个Topic,超过该限制会导致无法新增新的订阅关系。铂金版实例可提交工单定制。

计算订阅Topic数量时,一个包含通配符的订阅计算为一个订阅数量;同一父级Topic下不同子级的Topic订阅被计算为不同的Topic数量。例如:A/#被计算为一个订阅数量。A/#和A/a1/#被计算为2个Topic订阅数量。

Group ID
  • 名称长度:7~64个字符
  • 可用字符:仅限数字0~9、字母a~z或A~Z、短划线(-)和下划线(_),且必须以“GID_”或者“GID-”开头。
  • 唯一性:同一实例下Group ID必须唯一。
使用微消息队列MQTT版收发消息时,Group ID长度不得低于或超过最值限制,否则会导致无法发送或者订阅。
通配符订阅关系数量 每个父级Topic下仅允许100个通配符订阅关系。 服务端会限制每个父级Topic生效的通配符订阅关系的数量,超过限制后服务端会只加载100个,可能会造成部分订阅的客户端收不到消息。请严格控制数量。例如:对于同一个父级Topic A,订阅的A/#和A/a1/#以及A/a2/#计算为3个订阅关系数量。
说明 轻量版实例不支持通配符。

规则限制

限制项 限制值 说明
单实例规则数量 100 如果默认限制不满足,请提交工单请求处理。
说明 轻量版实例不支持数据流入规则、数据流出规则及上下线通知规则。
规则去重限制 同一个内部资源同种规则只能创建一个规则。 例如一个Group ID只能创建一个上下线通知规则,一个MQTT Topic只能创建一个数据流入规则和一个数据流出规则。
说明 轻量版实例不支持数据流入规则、数据流出规则及上下线通知规则。

消息收发限制

限制项 限制值 说明
消息大小 64 KB 消息负载不得超过该限制,否则消息会被丢弃。

铂金版实例可提交工单定制。

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

铂金版实例可提交工单定制。

说明 轻量版实例仅支持QoS=0且cleanSession=true,不支持保留离线消息。
QoS和cleanSession 不支持QoS=2且cleanSession=false的配置 使用微消息队列MQTT版收发消息时:
  • 如果cleanSession=true,那么QoS可以设置为0、1或2。
  • 如果cleanSession=false,那么QoS不可设置为2,微消息队列MQTT版暂不支持该配置。
说明 轻量版实例仅支持QoS=0且cleanSession=true,不支持保留离线消息。
Token有效期 30天 调用申请Token接口时,如果ExpireTime的取值大于30天,接口仍然调用成功返回Token,无报错,但实际有效期仍为30天。
离线消息可见时间 10秒 服务端首次推送消息后必须要等待超时或者失败后才能确认该消息是否转化为离线消息,对应的延迟时间通常是5秒~10秒。
说明 轻量版实例仅支持QoS=0且cleanSession=true,不支持保留离线消息。
离线消息存储数量 100万条 服务端会限制每个实例存储的离线消息数量。超过该限制后,服务端会从最早的消息开始清理。因此,请合理使用持久化订阅模式,以免产生过多无用的离线消息。

如果默认限制不满足,请提交工单请求处理。

说明 轻量版实例仅支持QoS=0且cleanSession=true,不支持保留离线消息。

云端API限制

调用云端API的每秒请求数(QPS)限制,请参见QPS限制