云消息队列 RocketMQ 版对实例的资源配额、实例规格和相关参数进行了约束和规范,您在使用云消息队列 RocketMQ 版时不要超过对应的限制值,避免应用出现异常。
参数限制
以下参数中各资源的命名及备注等限制值不支持调整,请严格按照规范设置,避免因出现特殊字符或长度超限导致系统处理异常。
参数 | 限制值 | 说明 |
实例名称 |
| 无。 |
Topic名称 |
系统保留字符:Topic名称不允许使用以下保留字符或含有特殊前缀的字符命名。 | Topic命名应该尽量使用简短、常用的字符,避免使用特殊字符。特殊字符会导致系统解析出现异常,字符过长可能会导致消息收发被拒绝。 |
ConsumerGroup名称 |
系统保留字符:ConsumerGroup不允许使用以下保留字符或含有特殊前缀的字符命名。 | 无。 |
实例备注 |
| 无。 |
Topic备注 | ||
Group备注 | ||
ACL Credentials |
| 无。 |
请求超时时间 |
| 请求超时时间是客户端本地同步调用的等待时间,请根据实际应用设置合理的取值,避免线程阻塞时间过长。 |
消息大小 | 不超过4 MB。 不涉及消息压缩,仅计算消息体body的大小。 | 消息传输应尽量压缩和控制负载大小,避免超大文件传输。若消息大小不满足限制要求,可以尝试分割消息或使用OSS存储,用消息传输URL。 |
消息自定义属性 |
系统保留属性:不允许使用以下保留属性作为自定义属性的Key。 | 无。 |
MessageGroup |
| MessageGroup是顺序消息的分组标识。一般设置为需要保证顺序的一组消息标识,例如订单ID、用户ID等。 |
消息发送重试次数 |
| 消息发送重试是客户端SDK内置的重试策略,对应用不可见,建议取值不要过大,避免阻塞业务线程。 如果消息达到最大重试次数后还未发送成功,建议业务侧做好兜底处理,保证消息可靠性。 |
消息消费重试次数 |
| 消费重试次数应根据实际业务需求设置合理的参数值,避免使用重试进行无限触发。重试次数过大容易造成系统压力过量增加。 |
事务异常检查间隔 |
| 事务异常检查间隔指的是,半事务消息因系统重启或异常情况导致没有提交,生产者客户端会按照该间隔时间进行事务状态回查。 间隔时长不建议设置过短,否则频繁的回查调用会影响系统性能。 |
半事务消息第一次回查时间 |
| 无。 |
半事务消息最大超时时长 |
| 半事务消息因系统重启或异常情况导致没有提交,生产者客户端会按照事务异常检查间隔时间进行回查,若超过半事务消息超时时长后没有返回结果,半事务消息将会被强制回滚。 您可以通过监控该指标避免异常事务。 |
定时消息最大间隔 |
| 定时消息间隔时长建议使用小时级别的时间区间,避免长时间定时。 |
PushConsumer消费超时时长 |
| PushConsumer消费超时时长由云消息队列 RocketMQ 版服务端统一控制。 超过消费超时时长消息还未处理完成,将被系统强制判定为消费失败并进行重试,因此可能会导致少量消息重复。 |
PushConsumer本地缓存 |
| 消费者类型为PushConsumer时,为提高消费者吞吐量和性能,客户端会在SDK本地缓存部分消息。缓存的消息的数量和大小应设置在系统内存允许的范围内。 |
PushConsumer重试间隔时长 |
| 无。 |
PushConsumer消费并发度 |
| 无。 |
获取消息最大批次 |
| 消费者从服务端获取消息时,一次获取到最大消息条数。建议按照实际业务设置合理的参数值,一次获取消息数量过大容易在消费失败时造成大批量消息重复。 |
SimpleConsumer最大不可见时间 |
| 消费不可见时间指的是消息处理+失败后重试间隔的总时长,建议设置时取值比实际需要耗费的时间稍微长一些。 |
消费者长轮询超时时间 | 取值范围:最小值5秒,最大值20秒。 支持用户在取值范围内自定义调整。 | 设置长轮询超时时间后,如果当前服务端无已就绪的消息,客户端请求会阻塞直到新消息到达或者超时时间到达。 消费者使用长轮询可以在消息量少的情况下大幅降低无效的空请求,降低客户端和服务端的压力。 |
资源配额
云消息队列 RocketMQ 版会根据生产环境的稳定性和运维经验限制部分操作的QPS和并发等指标。一般场景下这些配额指标都足够使用,如有特殊场景云消息队列 RocketMQ 版提供的额度不满足业务需求,您可以咨询云消息队列 RocketMQ 版技术支持进行处理。
限制项 | 限制值 | 说明 | |
包年包月和按量付费实例 | Serverless实例 | ||
单地域实例数 | 所有类型实例总数不超过1000个。 | 无。 | |
单实例消息收发TPS | 由购买的实例规格决定,具体限制值,请参见实例规格限制。 | 弹性自适应 | 消息收发TPS体现当前实例的处理性能,实际超过该规格实例会被限流,请及时升级规格配置。 |
单实例Topic数量 | 由购买的实例规格决定,具体限制值,请参见实例规格限制。 | 根据创建的Topic数量按量收费,具体计费信息,请参见Topic费用。 | 从安全性和稳定性考虑,建议将不同业务拆分到不同实例中,避免所有业务集中在单个实例中。 |
单实例Group数量 | 由购买的实例规格决定,具体限制值,请参见实例规格限制。 | 5000 | 从安全性和稳定性考虑,建议将不同业务拆分到不同实例中,避免所有业务集中在单个实例中。 |
消息保存时长 |
|
| 在存储成本可控范围内,建议尽量延长保存时长。消息保存时长越长,提供的问题排查周期和回溯窗口越长。 |
单消费者分组处理中消息的数量 | 不超过2500条。 | 不超过2500条。 | 消费者分组中处理中消息数量过多可能是消费者响应较慢,请及时关注并排查原因。 |
操作限制
云消息队列 RocketMQ 版是全托管免运维的PaaS服务,因此系统会在开源Apache RocketMQ的基础上,对部分高风险运维操作和部分功能进行限制。如有特殊需求,您可以咨询云消息队列 RocketMQ 版技术支持进行处理。
限制项 | 说明 |
Apache RocketMQ Admin工具兼容性 | 云消息队列 RocketMQ 版暂不支持使用Apache RocketMQ的Admin API以及CLI管理实例、Topic和Group资源。 若您有API管理需求,建议使用阿里云提供的OpenAPI。阿里云OpenAPI支持多语言SDK和CLI命令管理。 |
Apache RocketMQ Request-Reply消息 | 云消息队列 RocketMQ 版暂不支持发送Apache RocketMQ的Request-Reply消息。 |
Apache RocketMQ Streaming组件 | 云消息队列 RocketMQ 版暂不支持提供托管的Apache RocketMQ Streaming组件服务。您可以基于阿里云环境自行部署,或使用云消息队列 RocketMQ 版提供的消息集成功能实现轻量级的数据集成及计算。 |
Apache RocketMQ MQTT组件 | 云消息队列 RocketMQ 版暂不支持提供托管的Apache RocketMQ MQTT组件服务。建议您使用阿里云提供的云消息队列 MQTT 版服务,其功能更完整。 |
Apache RocketMQ EventBridge组件 | 云消息队列 RocketMQ 版暂不支持提供托管的Apache RocketMQ EventBridge组件服务。建议您使用阿里云的事件总线EventBridge服务,其功能更完整。 |
Apache RocketMQ-Connector组件 | 云消息队列 RocketMQ 版暂不支持提供托管的Apache RocketMQ-Connector组件服务。您可以使用云消息队列 RocketMQ 版提供的消息集成功能实现消息数据的流入和流出。 |
实例规格限制
标准版主系列下所有实例、以及专业版主系列下单节点版实例不支持突发弹性计算能力,您需要提前规划好资源用量,避免高水位运行时出现突发流量超过规格限制,造成实例限流。
单实例的Topic和Group配额是按照大规模生产环境实践所计算,满足绝大部分场景下的业务需求。建议您将业务按照部门和领域做实例拆分和隔离,避免将所有业务运行在单个实例中。
消息收发计算TPS规格是按照普通消息类型、消息大小4 KB为基准计算消息收发之和。高级特性消息和大消息计算时需要乘以对应倍率,具体计算方式,请参见计算规格说明。
若您实际使用的消息收发TPS超过了购买的规格上限:
如果实例开启了弹性TPS功能,则在[基础规格,弹性规格]区间内,实例可正常运行,且这部分规格需要按量收取弹性TPS费用;超过弹性能力上限后,实例还是会被限流。
弹性TPS计费信息,请参见弹性TPS费用。
实例不支持或未开启弹性TPS功能,则云消息队列 RocketMQ 版对实例进行限流。
若客户端与云消息队列 RocketMQ 版实例连接数过多时,服务端会消耗大量性能来维持客户端与服务端连接,会严重影响服务端稳定性。因此,建议您使用的客户端连接不要超过实例规格的上限值。
包年包月和按量付费实例规格上限
标准版实例规格
实例子系列 | 实例规格 | 消息收发基础规格TPS上限(次/秒) | 消息收发规格外突发弹性TPS上限(次/秒) | 连接数上限(个) | 公网下行带宽(Mbps) | Topic免费配额(个) | Topic最大配额(个) | Group最大配额(个) |
单节点版 | rmq.s1.micro | 500 | 不涉及 该规格不支持突发弹性能力。 | 2000 | 1~1000 支持自定义配置。 | 100 | 100 | 1000 |
集群高可用版 | rmq.s2.2xlarge | 2000 | 4000 | 300 | ||||
rmq.s2.4xlar | 4000 | 4000 | ||||||
rmq.s2.6xlarge | 6000 | 6000 | 500 |
若标准版中Topic和ConsumerGroup的最高规格(rmq.s2.6xlarge)仍无法满足您的业务需求,建议您升级至专业版并选择适合您的实例规格。
专业版实例规格
实例子系列 | 实例规格 | 消息收发基础规格TPS上限(次/秒) | 消息收发规格外突发弹性TPS上限(次/秒) | 连接数上限(个) | 公网下行带宽(Mbps) | Topic免费配额(个) | Topic最大配额(个) | Group最大配额(个) |
单节点版 | rmq.p1.micro | 500 | 不涉及 该规格不支持突发弹性能力。 | 2000 | 1~1000 支持自定义配置。 | 150 | 150 | 1500 |
集群高可用版 | rmq.p2.4xlarge | 4000 | 2000 | 4000 | 500 | 2000 | ||
rmq.p2.6xlarge | 6000 | 3000 | 6000 | |||||
rmq.p2.10xlarge | 10000 | 5000 | 10000 | 1000 | ||||
rmq.p2.20xlarge | 20000 | 10000 | 10000 | |||||
rmq.p2.50xlarge | 50000 | 20000 | 14000 | 2000 | ||||
rmq.p2.100xlarge | 100000 | 30000 | 26000 | |||||
rmq.p2.150xlarge | 150000 | 50000 | 38000 |
若专业版中Topic和ConsumerGroup的最高规格(rmq.p2.10xlarge或以上)仍无法满足您的业务需求,请提交工单咨询处理。
铂金版实例规格
实例子系列 | 实例规格 | 消息收发基础规格TPS上限(次/秒) | 消息收发规格外突发弹性TPS上限(次/秒) | 连接数上限(个) | 公网下行带宽(Mbps) | Topic免费配额(个) | Topic最大配额(个) | Group最大配额(个) |
集群高可用版 | rmq.u2.10xlarge | 10000 | 5000 | 10000 | 1~1000 支持自定义配置。 | 200 | 3000 | 4000 |
rmq.u2.20xlarge | 20000 | 10000 | 10000 | |||||
rmq.u2.40xlarge | 40000 | 20000 | 10000 | |||||
rmq.u2.100xlarge | 100000 | 30000 | 26000 | |||||
rmq.u2.150xlarge | 150000 | 50000 | 38000 | |||||
rmq.u2.200xlarge | 200000 | 60000 | 50000 | |||||
rmq.u2.400xlarge | 400000 | 100000 | 54000 | |||||
rmq.u2.600xlarge | 600000 | 200000 | 80000 | |||||
rmq.u2.1000xlarge | 1000000 | 300000 | 134000 |
若铂金版中Topic和ConsumerGroup的规格无法满足您的业务需求,请提交工单咨询处理。
Serverless实例规格上限
实例主系列 | 实例规格 | 消息收发TPS上限(次/秒) | 连接数上限(个) | 公网流量 | Topic最大配额(个) | Group最大配额(个) |
标准版 | rmq.s3.nxlarge | 50000 | 10000 | 无上限,以实际使用量计算费用 | 5000 | 5000 |
专业版 | rmq.p3.nxlarge | 50000 超过50000次/秒后,支持分钟级自适应弹性 | 30000 | 无上限,以实际使用量计算费用 | 5000 | 5000 |