使用限制
云消息队列 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 帧大小限制。
字符限制
限制项 | 限制值 |
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 并发量。