Message Queue for Apache RocketMQ is a distributed messaging middleware. It is developed by Alibaba Cloud based on Apache RocketMQ. Message Queue for Apache RocketMQ provides low latency, high concurrency, high availability, and high reliability. Message Queue for Apache RocketMQ provides asynchronous communication methods and the load shifting capability for distributed application systems. Message Queue for Apache RocketMQ also provides features that are required by Internet applications, including message accumulation, high throughput, and a reliable retry mechanism.
Access the service
You can access Message Queue for Apache RocketMQ over the Internet or Virtual Private Cloud (VPC). You can perform fine-grained control on your VPCs. For example, you can specify CIDR blocks and configure route tables and gateways for your VPCs. You can also deploy Alibaba Cloud resources, such as Elastic Compute Service (ECS) instances, ApsaraDB RDS instances, and Server Load Balancer (SLB) instances in your VPCs.
- Topic: the topic of messages. It is the primary classifier for messages. Producers send messages to topics.
- Producer: the producer or publisher who produces and sends messages to a topic.
- Consumer: the consumer or subscriber who subscribes to messages from a topic and consumes messages from a topic.
- Message: the combination of the data that the producer sends to a topic and data attributes. The attributes are optional.
- Message attribute: the attributes that can be defined by a producer for a message, including the message
key and tag.
- Message key: uniquely identifies the business logic for which a message is used. You can use message keys to query messages.
- Tag: A tag is a secondary classifier that is used to classify messages in a topic. Consumers can use tags to filter messages. For more information about message filtering, see Filter messages.
- Group: a type of producer or consumer that produces or consumes the same type of messages by using the same publishing or subscription logic.
For more information about the terms of Message Queue for Apache RocketMQ, see Terms.
Message Queue for Apache RocketMQ supports the publish-subscribe model. A message producer can create a topic and send messages to the topic. A consumer can subscribe to a topic and receive messages from the topic. Messages can be sent or received in one-to-many (fan-out), many-to-one (fan-in), or many-to-many mode.
- Producer cluster: A producer cluster is an application that sends messages. A producer
cluster contains multiple producer instances. The producer instances can be multiple
machines, multiple processes on one machine, or multiple producer objects in one process.
A producer cluster can send messages of multiple topics. When a distributed transactional message is sent, if the producer fails to run as expected, the Message Queue for Apache RocketMQ broker calls back a machine in the producer cluster to check the transaction status.
- Consumer cluster: A consumer cluster is a message consumption application. A consumer
cluster contains multiple consumer instances. The consumer instances can be multiple
machines, multiple processes, or multiple consumer objects in one process.
If a consumer cluster subscribes to a topic, all consumers in the cluster evenly consume the messages in the topic. In broadcasting consumption mode, each instance in the consumer cluster consumes all the messages.
A consumer cluster can be identified by a unique group ID. A group ID can be used to subscribe to multiple topics. For example, Group 2 in Figure 1 is used to subscribe to two topics. You can configure subscription relationships between groups and topics in your application. For more information, see the Optimization of resource application process section in Updates.
- Peak-load shifting
Large-scale events, such as flash sales, red envelope snatching, and opening ceremonies for enterprises, may cause traffic spikes. In these scenarios, the system may become overloaded or stop responding due to a lack of protection features. The user experience may be negatively affected because a large number of requests fail due to excessive limits. Message Queue for Apache RocketMQ provides the peak-load shifting feature to help resolve this issue.
- Asynchronous communication for decoupling
The transaction system of Taobao and Tmall primary sites is the core system. When each order is placed, the order data is used by hundreds of downstream business systems, including logistics, shopping carts, credits, and stream computing analytics. The overall business system is large and complex. Message Queue for Apache RocketMQ supports asynchronous communication and application decoupling to ensure the continuity of services on the primary sites.
- Sending and subscribing to ordered messages
In multiple scenarios in daily life, data must be processed based on the sequence in which the data is generated. For example, the time-first principle in securities trading, order creation, payment, and refund in a trading system, and processing of messages related to flight boarding. Ordered messages in Message Queue for Apache RocketMQ are sent and received in first-in-first-out (FIFO) mode.
- Consistency of distributed transactions
Eventual consistency must be ensured in scenarios such as trading systems and red envelopes. You can use a large number of distributed transactions based on Message Queue for Apache RocketMQ to decouple systems and ensure eventual consistency.
- Big data analysis
The value of data is created by data flows. Most traditional data analysis solutions use the batch computing model. In this model, data cannot be analyzed in real time. If you want to analyze your business data in real time, use Alibaba Cloud Message Queue for Apache RocketMQ together with stream computing engines.
- Distributed cache synchronization
During Double 11, changes in commodity prices for different activities need to be updated across all components of the business system in real time. A large number of concurrent requests to the databases slow down page response. The centralized cache limits the traffic destined for the data of commodity changes due to bandwidth bottlenecks. To resolve this problem, Message Queue for Apache RocketMQ provides a distributed cache to update commodity data changes across all components in real time.
For more information, see Scenarios.
For more information, see Overview of features.
For more information, see Overview.