使用限制
云消息队列 RabbitMQ 版对集群、字符及TPS流量峰值进行了限制,您在使用云消息队列 RabbitMQ 版时注意不要超过相应的限制值,以免程序出现异常。
集群限制
此表格中各项限制为最新版本实例;
如果用户实例某项限制与表格不符合,可能不是最新版本实例造成,详细请提工单咨询,调整时有如下限制:
老架构实例不支持调整:实例 ID 为纯数字,或者 vpc 域名不是 mq.amqp.aliyuncs.com 结尾的实例,不支持对下列各项限制进行调整。
限制项 | Serverless系列实例 | 预付费系列实例 | |||
共享 | 独享 | 企业版 | 铂金版 | 专业版 | |
预留+弹性/按累积量 | 预留+弹性 | ||||
单实例的Vhost数量 | 200 | 2000 | 200 | 4096 | 200 |
单实例的Exchange数量 | 6000 | 10000 | 6000 | 80000 | 6000 |
单实例的Binding数量 | 2万 | 2万 | 2万 | 无 | 2万 |
单实例可创建的Queue数量 | 6000 | 10000 | 6000 | 80000 | 6000 |
单实例的Connection数量 | 最大连接数为1万。 | 最大连接数为2万。 | 根据实例规格购买。 单实例有2000的免费额度,最大连接数为1万。 | 根据实例规格购买。 单实例有5万的免费额度,最大连接数为10万。 | 等于Queue数量×4。 单实例的Connection数量取值范围为[1000,5000]。 |
单Exchange绑定的Queue数量 | 256 | 256 可提交工单定制需求。定制后实例不可降配到共享集群。 | 256 | 256 如需定制,请联系阿里云技术支持。 | 256 |
单Queue的Consumer数量 | 等于Queue数量×4。 单Queue的Consumer数量取值范围为[800,5000] | 无 | 等于Queue数量×4。 单Queue的Consumer数量取值范围为[800,5000] | 无 | 等于Queue数量×4。 单Queue的Consumer数量取值范围为[50,5000]。 |
单Connection的Channel数量 | 2000 | 3000 | 单Connection的Channel数量取值范围为Min[Queue数量,2048]。
| 3000 | 单Connection的Channel数量取值为64或Queue数量。
|
消息大小 | 10 MB | 50 MB | 10 MB (注:青岛、日本、呼和浩特地域及2025年5月1日前创建的其他地域实例为 1 MB) | 50 MB (注:青岛、日本、呼和浩特地域及2025年5月1日前创建的其他地域实例为 3 MB) | 64 KB |
延时消息最大延时时间 | 7天 | 7天 可提交工单定制需求。定制后实例不可降配到共享集群。 | 7天 | 7天 如需定制,请联系阿里云技术支持。 | 24小时 |
消息最大保留时间 | 3天 | 3天 | 3天 | 3天 | 3天 |
最大投递次数 | 16 | 16 | 16 | 64 | 16 |
最大值:3小时 默认值:5分钟 | 最大值:12小时 默认值:30分钟 | 最大值:3小时 默认值:5分钟 | 最大值:12小时 默认值:30分钟 | 最大值:10分钟 默认值:1分钟 | |
云消息队列 RabbitMQ 版对消息 Header 帧的大小限制为 32 KB,且该限制不可调整。建议将大消息内容放置在消息 Body 中发送,以避免触发 Header 帧大小限制。
单 Channel 的 basicQos(即 prefetch count)最大值为 100,且该限制不可调整,适用于所有实例类型。此限制用于避免未确认消息(Unacked Message)堆积过多导致内存压力过大,从而保障系统的稳定性与性能。设置 prefetch count 时请勿超过此上限,否则可能导致 Qos 限制生效异常。
字符限制
限制项 | 限制值 |
Queue名称 |
|
Exchange名称 |
|
Vhost名称 |
|
Binding Key |
|
Consumer Tag |
|
Message ID |
|
限流阈值
TPS计数规则请参见Serverless系列实例计数规则和预付费系列实例TPS计数规则。
TPS被限流后的解决办法,请参见单实例总TPS被限流的解决办法和单节点的TPS被限流的解决办法。
实例总TPS限流阈值
实例系列 | Serverless系列实例 | 预付费系列实例 | ||||||
规格 | 共享 | 独享 | 未开启弹性TPS | 开启弹性TPS | ||||
预留+弹性/按累积量 | 预留+弹性 | 企业版 | 铂金版 | 专业版 | 企业版 | 铂金版 | 专业版 | |
限流阈值 | 最大5万次/秒 | 基础TPS流量峰值规格的2倍 | 基础TPS流量峰值规格 | 基础TPS流量峰值规格的2倍,最大5万次/秒 | 基础TPS流量峰值规格的2倍,最大5万次/秒 | 基础TPS流量峰值规格的1.5倍 | ||
单节点SendMessage TPS限流阈值
服务端会在实例维度限制每个后台服务节点上SendMessage的TPS值,限流阈值如下所示:
限制 | Serverless系列实例 | 预付费系列实例 | ||||
共享 | 独享 | 企业版 | 铂金版 | 专业版 | ||
按累积量 | 预留+弹性 | 预留+弹性 | ||||
限流阈值 | 2.5万次/秒 | 2.5万次/秒 | 无 | 2.5万次/秒 | 无 | 2.5万次/秒 |
单接口的限流阈值
限制项 | 限制项接口 | Serverless系列实例 | 预付费系列实例 | |||
共享 | 独享 | 企业版 | 铂金版 | 专业版 | ||
预留+弹性/按累积量 | 预留+弹性 | |||||
单实例清Queue |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例创建Exchange |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例删除Exchange |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例创建Queue |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例删除Queue |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例创建Binding |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例删除Binding |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例恢复消息 |
| 500 TPS | 无 | 500 TPS | 无 | 500 TPS |
单实例重入Queue消息 |
| 20 TPS | 无 | 20 TPS | 无 | 20 TPS |
常见问题
企业版实例是否支持单独扩展 Queue 数量上限?
当前企业版实例的单实例 Queue 数量上限为 6000,该限制为产品版本级规格限制,暂不支持在当前版本内单独扩展至 10000。
如需解决 Queue 数量不足的问题,可参考以下方案:
优化 Queue 使用:合并可合并的 Queue,通过 Topic Exchange 路由策略减少 Queue 数量,或清理无消费者且不再使用的历史 Queue。
拆分实例:若业务允许,将部分业务拆分到新的企业版实例,分散 Queue 使用量。
报错 The channelMax limit is reached 如何处理?
当单个 Connection 下的 Channel 数量达到当前实例版本的 channelMax 限制时,会触发此报错。
问题原因:单个 Connection 下的 Channel 数量超出了当前实例版本的上限(channelMax)。Channel 数量限制因实例版本不同而有所差异,例如专业版的 Channel 数量与 Queue 数量关联,企业版 Channel 数量上限为 Queue 数量与 2048 的较小值。
解决方法:
确认当前 RabbitMQ 实例的版本(专业版/企业版/铂金版等)。
查阅本文档「集群限制」表格中「单 Connection 的 Channel 数量」行,了解当前版本的具体 channelMax 限制值。
根据业务需求评估是否需要升级实例版本,以支持更多的 Channel 并发量。
云消息队列 RabbitMQ 版是否支持开放 15672 管理端口及自定义配置?
云消息队列 RabbitMQ 版不支持开放 15672 管理端口,也不支持任何自定义配置。云上实例仅默认开放 5672 端口用于 AMQP 协议通信,该限制适用于所有实例类型(Serverless、独享、共享、预付费等)。如果您需要通过管理控制台端口查看集群状态或调整自定义参数,暂时无法通过开放该端口实现。
RabbitMQ 实例是否支持迁移资源组?
云消息队列 RabbitMQ 版实例当前不支持资源组功能,控制台无相关配置入口,暂不支持资源组迁移或更换资源组(ResourceGroup)。
购买 RabbitMQ 实例需要占用多少个交换机 IP 地址?
购买云消息队列 RabbitMQ 版实例通常需要配置两个交换机(vSwitch),每个交换机至少需预留 20 个 IP 地址,因此总共需要占用 40 个 IP 地址。规划网络时请预留足够的 IP 地址,避免因 IP 地址不足导致实例创建失败。