ApsaraMQ for RabbitMQ enforces limits on clusters, characters, and peak Transactions Per Second (TPS) traffic. To avoid program errors, do not exceed these limits when using ApsaraMQ for RabbitMQ.
Cluster limits
The limits in this table apply to the latest version of instances.
If the limits of your instance do not match those in this table, your instance may not be the latest version. For more information, submit a ticket. The following restrictions apply to limit adjustments:
Legacy architecture instances do not support limit adjustments: Instances whose ID consists of digits only, or whose VPC endpoint does not end with
mq.amqp.aliyuncs.com, do not support adjustments to the limits listed below.
Item | Serverless instance | Subscription instance | |||
Shared | Exclusive | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | |
Pay-by-provisioned-capacity-and-elastic-traffic/Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | ||||
Vhosts per instance | 200 | 2,000 | 200 | 4,096 | 200 |
Exchanges per instance | 6,000 | 10,000 | 6,000 | 80,000 | 6,000 |
Bindings per instance | 20,000 | 20,000 | 20,000 | None | 20,000 |
Queues per instance | 6,000 | 10,000 | 6,000 | 80,000 | 6,000 |
Connections per instance | 10,000 | 20,000 | Purchase based on instance type. Each instance has a free quota of 2,000 connections. The maximum is 10,000. | Purchase based on instance type. Each instance has a free quota of 50,000 connections. The maximum is 100,000. | Number of queues × 4. The number of connections per instance ranges from 1,000 to 5,000. |
Queues per exchange binding | 256 | 256 Submit a ticket to request a custom quota. After customization, you cannot downgrade the instance to a shared cluster. | 256 | 256 To request a custom quota, contact Alibaba Cloud technical support. | 256 |
Consumers per queue | Number of queues × 4. The number of consumers per queue ranges from 800 to 5,000. | None | Number of queues × 4. The number of consumers per queue ranges from 800 to 5,000. | None | Number of queues × 4. The number of consumers per queue ranges from 50 to 5,000. |
Channels per connection | 2,000 | 3,000 | The number of channels per connection is the minimum of [Number of queues, 2048].
| 3,000 | The number of channels per connection is either 64 or the Number of queues.
|
Message size | 10 MB | 50 MB | 10 MB (Note: For instances in the China (Qingdao), Japan (Tokyo), and China (Hohhot) regions, and instances created before May 1, 2025 in other regions, the limit is 1 MB.) | 50 MB (Note: For instances in the China (Qingdao), Japan (Tokyo), and China (Hohhot) regions, and instances created before May 1, 2025 in other regions, the limit is 3 MB.) | 64 KB |
Maximum delay for delayed messages | 7 days | 7 days Submit a ticket to request a custom quota. After customization, you cannot downgrade the instance to a shared cluster. | 7 days | 7 days To request customization, contact Alibaba Cloud Technical Support. | 24 hours |
Maximum message retention period | 3 days | 3 days | 3 days | 3 days | 3 days |
Maximum delivery attempts | 16 | 16 | 16 | 64 | 16 |
Maximum: 3 hours Default: 5 minutes | Maximum: 12 hours Default: 30 minutes | Maximum: 3 hours Default: 5 minutes | Maximum: 12 hours Default: 30 minutes | Maximum: 10 minutes Default: 1 minute | |
ApsaraMQ for RabbitMQ limits the size of a message Header frame to 32 KB. This limit cannot be adjusted. To avoid triggering the Header frame size limit, include large message content in the message Body rather than the Header frame.
Character limits
Item | Limit |
Queue name |
|
Exchange name |
|
Vhost name |
|
Binding key |
|
Consumer tag |
|
Message ID |
|
Rate limiting thresholds
For information about how TPS is calculated, see Calculation rules for Serverless instance editions and TPS calculation rules for subscription instance editions.
For information about how to resolve issues when TPS is rate-limited, see Solutions for when the total TPS of an instance is rate-limited and Solutions for when the TPS of a single node is rate-limited.
Total TPS
Instance edition | Serverless instance | Subscription instance | ||||||
Specification | Shared | Exclusive | Elastic TPS disabled | Elastic TPS enabled | ||||
Pay-by-provisioned-capacity-and-elastic-traffic/Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | |
Rate limiting threshold | Maximum 50,000 per second | Twice the peak TPS of the base specifications | Peak TPS of the base specifications | Twice the peak TPS of the base specifications, up to a maximum of 50,000 per second | Twice the peak TPS of the base specifications, up to a maximum of 50,000 per second | 1.5 times the peak TPS of the base specifications | ||
Single-node SendMessage
The server limits the SendMessage TPS for each backend service node in an instance. The thresholds are as follows:
Item | Serverless instance | Subscription instance | ||||
Shared | Exclusive | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | ||
Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | Pay-by-provisioned-capacity-and-elastic-traffic | ||||
Rate limiting threshold | 25,000 per second | 25,000 per second | None | 25,000 per second | None | 25,000 per second |
Single API call
Item | API | Serverless instance | Subscription instance | |||
Shared | Exclusive | Enterprise Edition | Enterprise Platinum Edition | Professional Edition | ||
Pay-by-provisioned-capacity-and-elastic-traffic/Pay-by-messaging-request | Pay-by-provisioned-capacity-and-elastic-traffic | |||||
Purge queue per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Create exchange per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Delete exchange per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Create queue per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Delete queue per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Create binding per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Delete binding per instance |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Single-Instance Recovery Message |
| 500 TPS | None | 500 TPS | None | 500 TPS |
Requeue messages per instance |
| 20 TPS | None | 20 TPS | None | 20 TPS |
FAQ
Does Enterprise Edition support independently expanding the queue limit?
No. The maximum number of queues per Enterprise Edition instance is 6,000. This limit is a product-tier specification and cannot be independently expanded within the current edition (for example, it cannot be independently raised to 10,000).
If your business requires more queues, consider the following alternatives:
Optimize queue usage: Consolidate queues where possible, use Topic Exchange routing strategies to reduce the total number of queues, or clean up queues that have no consumers and are no longer in use.
Split the business across instances: If your workload allows, distribute part of your business to a new Enterprise Edition instance to spread queue usage across multiple instances.
How do I handle the error "The channelMax limit is reached"?
Cause: The number of channels under a single connection has reached the channelMax limit for your current instance edition.
Solution:
Confirm your current ApsaraMQ for RabbitMQ instance edition (Professional Edition, Enterprise Edition, Enterprise Platinum Edition, and so on).
Refer to the Channels per connection row in the Cluster limits table to find the specific channelMax value for your instance edition.
Evaluate whether you need to upgrade your instance edition to support a higher number of concurrent channels.
The keywords "channelMax", "limit is reached", "pay callback error", and "channel count limit" all relate to this error. If you encounter any of these symptoms, follow the steps above to diagnose and resolve the issue.