Distributed message service RocketMQ (DMS RocketMQ) is message-oriented middleware featuring low cost, high reliability and high performance. It is compatible with open-source RocketMQ clients, provides efficient and reliable message delivery services, solves the difficult problem of message and data communication between distributed application systems, and is used for decoupling between systems. Users only need to focus on services without caring about deployment and O&M. It is suitable for various business settings such as e-commerce, finance, government and enterprises.
The basic process of publishing and subscribing to the DMS RocketMQ is shown as follows:
1. The producer connects to the nameserver and the generated data are stored in different topics;
2. For RocketMQ, a topic can be distributed across brokers. A subset of a topic distributed on a broker is defined as a topic shard.
3. A topic shard is divided into several equal parts, each of which is called a queue. The number of queues for each topic shard may vary and can be specified when you are creating a topic;
4. The consumer connects to the nameserver and consumes data based on the queues assigned by the broker.
Core Component
DMS RocketMQ consists of producers, brokers, and consumers. Messages are produced by producers, consumed by consumers, and stored by brokers. A broker corresponds to an actual server, and each broker can store messages from multiple topics. The messages from each topic can also be stored in different brokers as shards. Message queues store the physical addresses of messages. The message addresses in each topic are stored in multiple message queues. A consumer group consists of multiple consumers. For more information, see Product Architecture.
Comparison with Open-Source Versions
Compared with open-source self-built RocketMQ versions, DMS RocketMQ features automatic deployment, O&M monitoring, enhanced capabilities, delayed/scheduled messages, ACL-based access control. For more information, see Comparison with Open-Source Versions.
Supported Message Types
DMS RocketMQ supports four message types.
l Normal messages: Messages that do not have any features and include synchronous and asynchronous messages.
l Ordered messages: Messages that are consumed in the exact order that they are created. RocketMQ has two types of ordered messages: globally ordered messages and locally ordered messages (also known as normal ordered messages, or partitioned ordered messages).
l Transactional message: Messages that achieve eventual consistency, delivering distributed transaction processing similar to X/Open XA. Essentially, distributed transactions are processed on RocketMQ through half messages (prepare messages and commit messages).
l Delayed messages: Messages that are delivered to consumers after a specific period after being sent from producers to the RocketMQ server.
For more information, see Features.
Product Features
The features of DMS RocketMQ are mainly reflected in the following aspects:
Access Interface
Users can call APIs, create queues, query message monitoring metrics, and query message contents.
Queue Capacity
Multiple message types are supported, including normal queues (high concurrency), FIFO ordered queues (ordered messages), and strictly ordered queues.
Messaging Capabilities
It supports message filtering, message reuse, message retry, message tracking, active message deletion, and message broadcasting.
Security Protection
Cloud Audit records tenant management operations.
O&M Monitoring
You can manage topics, subscription groups, producers, consumers, and queues, and monitor the metrics of clusters, topics, and queues.
For more information, see Features.
Application Scenarios
DMS RocketMQ applies to various business scenarios such as e-commerce, finance, government and enterprise affairs as well as asynchronous communication, data synchronization and exchange, and traffic balance in peak and off-peak hours. For more information, see Application Scenarios.
Limitations
DMS RocketMQ has limits on objects such as topics and groups. Be careful not to exceed the limits to avoid program exceptions. For more information, see Limits.