Compatibility with open source RabbitMQ clients
ApsaraMQ for RabbitMQ supports the AMQP 0-9-1 protocol and is compatible with the open source RabbitMQ clients that are developed by using all languages. This service supports queues, exchanges, and virtual hosts that are created in open source RabbitMQ.
Elimination of pain points in open source RabbitMQ
ApsaraMQ for RabbitMQ supports the accumulation of a large number of messages. This prevents breakdowns that can occur if a large amount of memory is consumed when a large number of messages are accumulated. A Message Queue for RabbitMQ cluster uses a distributed architecture that does not support primary nodes. This prevents the split-brain issue that can occur in open source RabbitMQ. This service is highly scalable and supports auto scaling. Each queue supports unlimited throughput.
ApsaraMQ for RabbitMQ supports millions of queues. Each queue supports scale-out operations and an unlimited number of concurrent requests. This service is highly scalable. The maximum TPS of a queue increases linearly with the number of nodes in the queue. Auto scaling is performed based on your business requirements and is transparent to users. A Message Queue for RabbitMQ cluster provides high performance even if a large number of messages are accumulated.
You can use the global message routing feature in the same manner in which you use Shovel. This feature is stable and reliable, and can be used to forward messages from a queue to another queue or an exchange in a few clicks. The source and the destination can belong to different instances or regions. After the number of retries for consuming a message exceeds the specified threshold value, the message enters the dead-letter queue. This mechanism prevents the issue in which the system cannot consume new messages when a single message cannot be consumed.
Comparison between ApsaraMQ for RabbitMQ and open source RabbitMQ
|Item||ApsaraMQ for RabbitMQ||Open source RabbitMQ|
|Protocols||AMQP 0-9-1||AMQP 0-9-1 and AMQP 1-0|
|Clients||Open source clients of all versions and all languages||Open source clients of all versions and all languages|
|System architecture||Message Queue for RabbitMQ provides services in distributed clusters that do not contain primary nodes. All nodes in a cluster provide equivalent services.||Open source RabbitMQ is developed by using Erlang. Issues that occur when you use the service are difficult to resolve. An open source RabbitMQ cluster that is deployed in the high-availability mode cannot be scaled out. This causes performance bottlenecks. Open source RabbitMQ consumes memory to provide services. Therefore, various issues that decrease the stability of your business can occur.|
|Message accumulation||The accumulation of a large number of messages does not degrade the performance of clusters.||Open source RabbitMQ does not support the accumulation of a large number of messages. Breakdowns may occur if a large amount of memory is used when a large number of messages are accumulated.|
|Scaling||Each queue supports an unlimited number of transactions per second (TPS) and can be scaled out. This service provides highly scalable instances and supports auto scaling that is transparent to users. The maximum TPS of a queue increases linearly with the number of nodes in the queue.||To increase the maximum number of concurrent queries that can be processed by a mirrored queue cluster, you must upgrade the server configuration.|
|Split-brain||The split-brain issue does not occur because a cluster does not contain a primary node and all nodes in a cluster provide equivalent services.||Cluster heartbeats can be lost for various reasons. This can cause the split-brain issue to occur. When the system is being recovered, your service may be interrupted and data loss can occur.|
|Observability||Message Queue for RabbitMQ provides the monitoring and alerting feature. Prometheus is integrated to monitor messaging in multiple dimensions, such as instances, virtual hosts, exchanges, and queues. The metrics include message rate, number of accumulated messages, number of connections, number of channels, and QPS of calling each API operation.||You can call API operations to query metrics and build a monitoring and alerting system based on the monitoring data. Prometheus is integrated into RabbitMQ V3.8.0 and later. However, fine-grained monitoring and alerting are not supported.|
Fully Compatible with Open Source RabbitMQ
Allows you to store messages in queues and provides partitions to store messages. A consumer can consume messages by cluster.
Allows you to bind exchanges to queues and specify binding keys. This way, an exchange can filter messages that match specific routing rules and route the messages to one or more queues. The exchange can also drop messages that do not match the rules.
Virtual Host (vHost)
Uses vHosts to meet isolation requirements, such as production and testing isolation and service splitting.
Various Types of Exchanges
Routes messages to all the queues where the current exchange is bound
Routes a message to the queue whose binding key is the same as the routing key of the message
Routes a message to one or more queues based on the fuzzy match result between the routing key of the message and the binding keys of the current exchange
Complete O&M Tools
A series of complete, convenient, and easy-to-use O&M tools to help you identify and resolve issues
Monitoring and Alerting
Monitors active connections, message accumulation, and delayed message delivery to help you identify issues promptly
Allows you to query devices, manage devices by group, and collect statistics on received and sent messages
Provides self-service resource management, self-service O&M, and RESTful APIs
Upgraded Support For You
1 on 1 Presale Consultation, 24/7 Technical Support, Faster Response, and More Free Tickets.