This topic provides a comparison between Alibaba Cloud Message Queue for RabbitMQ and open source RabbitMQ in terms of performance, stability, and supported features.

Performance

Item Message Queue for RabbitMQ Open source RabbitMQ
Maximum transactions per second (TPS) of a cluster Unlimited. A Message Queue for RabbitMQ cluster is created based on a distributed architecture and contains no primary nodes. This way, the number of nodes can be increased or decreased based on your business requirements. Limited. To improve the performance of open source RabbitMQ clusters, upgrade the hardware specifications based on upper limits.
Maximum TPS of a single queue Unlimited. In Message Queue for RabbitMQ, a queue can be scaled out. The number of concurrent queries on a queue and the size of a queue are unlimited. Limited. The maximum number of concurrent queries on a queue equals to the maximum number of concurrent queries on a node in the queue.
Number of connections Unlimited. The maximum number of connections on an Message Queue for RabbitMQ instance scales linearly with the cluster size and is not affected if the number of connections increases. Limited. Each instance in a cluster supports only a limited number of connections, and the threshold cannot be changed to a greater value.
Scheduled message Supports message scheduling that is accurate to seconds, provides high performance, and is available for immediate use. Message scheduling is complex to use.

Stability

Item Message Queue for RabbitMQ Open source RabbitMQ
Accumulation of large numbers of messages Supports a large number of accumulated messages, and provides high performance even if a large number of messages are accumulated. Does not support a large number of accumulated messages. If a large number of messages are accumulated, a large amount of memory is used. This can cause service breakdowns.
Scalability Adopts a distributed architecture that does not support primary nodes. The number of nodes that you want to use can be increased or decreased in an efficient manner. You can modify the server specifications to adjust the cluster performance.
Service availability Adopts a distributed architecture that ensures the high availability of 99.95% of the clusters and provides high availability across zones. Developed by using the Erlang programming language and requires advanced O&M experience. High stability cannot be ensured due to the open source architecture.
Data reliability Data is stored in three replicas. This ensures high TPS performance. Cannot ensure high TPS performance when you use multiple replicas.
Inspection system Automatically detects and resolves issues such as deadlocks and breakdowns. None.

Feature

Table 1. General features
Item Message Queue for RabbitMQ Open source RabbitMQ
Support for client SDKs Provides an open source SDK for clients of each language and each version. Supports open source SDKs.
Scheduled message Supports message scheduling that is accurate to seconds. You can use the x-delayed-message plug-in or specify the time-to-live (TTL) value to enable message scheduling. Requires you to install a plug-in or transfer expired messages to support delayed messages.
Transactional messages Not supported. Supported.
Message retries If a consumer does not respond within a specific period of time, the message is sent to the consumer again. For more information about the timeout period and the number of retries, see Message retry. Message retries are not supported. The system does not skip message consumption requests when errors occur. This prevents the system from processing new messages. As a result, messages are accumulated and cause memory issues. This can cause messaging service breakdowns.
Table 2. Exchange
Item Message Queue for RabbitMQ Open source RabbitMQ
Exchange types Supports direct, fanout, headers, topic, and x-delayed-message exchanges. Supports direct, fanout, headers, topic, and x-delayed-message exchanges.
Persistence Supports persistent and non-persistent storage of configurations. Supports persistent and non-persistent storage of configurations.
Auto Delete Supported. Supported.
Internal Supported. Supported.
Alternate exchange Not supported. Supported.
Table 3. Queue
Item Message Queue for RabbitMQ RabbitMQ
Queue type Uses a distributed architecture that does not require you to configure the queue type. This ensures high availability. Requires manual configuration. Valid values:
  • Classic: classic image queue
  • Quorum: quorum queue
Node Does not require manual configuration or O&M. Requires manual configuration. You can select a node based on your business requirements.
Persistence Supports persistent and non-persistent storage. Supports persistent and non-persistent storage.
Max length Does not require manual configuration and supports accumulation of large numbers of messages. Requires manual configuration to prevent breakdowns that are caused by memory overuse in message accumulation scenarios.
Max length bytes
Max in memory length
Max in memory bytes
Delivery limit Does not require manual configuration. By default, a maximum of 16 retries are supported. For more information about message retries, see Message retry. Requires manual configuration. Valid values:
Dead letter exchange Supported. Supported.
Dead letter routing key Supported. Supported.
Single active consumer Not supported. Supported.