Distributed message service RabbitMQ (DMS RabbitMQ), a cloud service relying on the high availability and distributed cluster technologies, is fully compatible with the RabbitMQ open-source community and supports message routing, transaction message, priority queue, delay queue, dead-letter queue, and mirror queue. The out-of-the-box and O&M-free service helps you quickly migrate your business to the cloud.
The basic process of publishing and subscribing to the DMS RabbitMQ is shown as follows:
1. The producer first produces a message, which is published to the specified exchange through the channel connected using TCP.
2. The exchange selects the corresponding queue by the routing key and delivers the message to the queue.
3. The consumer subscribes to the queue and consumes the message.
Core Concepts
The core concepts in DMS RabbitMQ are shown as follows:
l Producer: refers to the publisher of messages. The producer first produces a message and publishes it to the specified exchange. The exchange selects the corresponding queue by the routing key and delivers the message to the queue. The consumer subscribes to the queue and consumes the message.
l Connection: refers to a TCP connection between the client and the broker.
l Channel: Each connection supports multiplexing and contains multiple channels. Data is transferred between a producer and a broker through channels.
l Broker: refers to a RabbitMQ service node. A cluster consists of multiple nodes.
l Vhost: refers to a virtual host. A node contains multiple Vhosts, and the exchanges and queues for Vhosts are isolated from each other. For example, multiple Vhosts are deployed on a broker, and use different user names and passwords for login, realizing multi-tenant operation.
l Exchange: A producer sends a message to an exchange, which then routes the message to queues based on the routing key.
l Queue: refers to the data structure that stores the messages. They are similar to express cabinets.
l Binding: Associates an exchange with a queue through a routing key.
l Consumer: refers to the recipient of messages.
For more information, see Explanation of Terms.
Comparison with Open-Source Kafka
Compared to open-source and self-built RabbitMQ versions, DMS RabbitMQ features low-cost O&M, and is more superior in terms of message accumulation, observability, cluster availability, security assurance, operation logs, and OpenAPI access.
Comparison Items | Open-Source and Self-Built | Distributed Message Service RabbitMQ Version |
Low-cost O&M | Experts are required for resource planning, deployment, and O&M. | One click to activate, fully managed. Provide a variety of specifications for on-demand use, and support one-click expansion on the node number, disk storage space, and node specifications. |
Message Accumulation | Poor performance in handling accumulated messages and crash due to memory problems | A cloud native engine that supports massive accumulated messages, without affecting the performance |
Observability | The Management UI provides diverse metrics but you have to build a system for storing and displaying these metrics. | The alarm monitoring capability, with various metrics and monitoring for Vhosts, exchanges, and queues, helps you quickly discover and locate faults. |
Cluster Availability | Additional setting of multi-node load balancing for clusters | Built-in load balancing for clusters and cross-AZ deployment |
Security | Require security reinforcement by yourself. | Support VPC isolation and SSL channel encryption. |
Operation Logs | No, you need to develop it yourself. | Provide traceable tenant management operation records |
OpenAPI Access | No, you need to develop it yourself. | Instances can be managed easily by calling RESTFul APIs, easy and simple. |
Product Features
The features of Distributed Message Service (RabbitMQ) are mainly reflected in the following aspects:
Access Interface
You can call the API to add, delete, check, or change exchanges and queues. On the Console, you can add, delete, check, or change exchanges, queues, users, and policies.
Queue Capacity
(1) Priority queue: Compared with low-priority messages, messages in a priority queue are preferentially delivered to consumers for processing.
(2) Delayed queue: Support delayed messages with second-level accurate timing; easy to use, requiring users to set only one parameter in code to solve the pain points of open-source RabbitMQ queues without latency.
(3) Dead-letter queue: Support rejected messages, TTL expired messages, and queues reach the maximum length (AMQP queues have no upper limit for length) to automatically enter a dead-letter queue, avoiding message loss.
Messaging Capabilities
(1) Message broadcasting: Deliver the same message to all consumers in a consumer group.
(2) Transaction messages: Applicable for distributed applications.
(3) Scheduled messages: Support delayed sending of messages. It solves the pain points of open-source RabbitMQ queues that do not support delay.
Security Protection
It provides traceable tenant management operation records, and originates from the financial system, with support for permission control and SSL protocol.
O&M Monitoring
It manages clusters, exchanges, and queues, and provides metrics for clusters, channels, connections, exchanges, and queues.
For more information, see Features.
Application Scenarios
DMS RabbitMQ applies to e-commerce, financial services, telecommunications, logistics and supply chain management, social media, game development, science and research, as well as application decoupling, load shifting/peak clipping, asynchronous communication and other scenarios. For more information, see Application Scenarios.
Limitations
DMS RabbitMQ has limits on the number of connections and channels. Be careful not to exceed the limits to avoid program exceptions. For more information, see Limits.