Message Queue for Apache RocketMQ is a distributed message-oriented middleware service that is built by Alibaba Cloud based on Apache RocketMQ and features low latency, high concurrency, high availability, and high reliability. Message Queue for Apache RocketMQ provides asynchronous decoupling and load shifting for distributed application systems, and supports features for Internet applications, including massive message accumulation, high throughput, and reliable retry.

Access methods

In addition to Internet access, Message Queue for Apache RocketMQ also supports virtual private clouds (VPCs). You have full control over your VPCs. For example, you can specify CIDR blocks and configure routing tables and gateways for them. You can also deploy Alibaba Cloud resources, such as Elastic Compute Service (ECS), ApsaraDB RDS, and Server Load Balancer (SLB) instances, in VPCs that you set up.

Terms

  • Topic: the topic of the message. It is a level-1 message type. A producer publishes messages to a topic.
  • Producer: the producer or publisher who produces and sends messages to a topic.
  • Consumer: the consumer or subscriber who subscribes to and consumes messages from a topic.
  • Message: a combination of attributes (optional) and data that the producer sends to a topic.
  • Message attribute: the attributes that a producer can define for a message, including the message key and tag.
  • 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.

Publish-subscribe model

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 it. Communication can be in one-to-many (fan-out), many-to-one (fan-in), or many-to-many mode.

The model is illustrated in the following figure.
Figure 1. Publish-subscribe model
messagingmodel
  • Producer cluster: A producer cluster indicates a message sending application. A producer cluster contains multiple producer instances, which can be multiple machines, or multiple processes of one machine, or multiple producer objects of one process.

    A producer cluster can send messages of multiple topics. When a distributed transactional message is sent, if the producer unexpectedly fails, the Message Queue for Apache RocketMQ broker actively calls back a machine in the producer cluster to confirm the transaction status.

  • Consumer cluster: A consumer cluster indicates a message consumption application. A consumer cluster contains multiple consumer instances, which can be multiple machines, multiple processes, or multiple consumer objects of one process.

    Multiple consumers in a consumer cluster consume messages in even mode. In broadcasting consumption mode, all instances in the consumer cluster consume all the messages.

    One consumer cluster corresponds to one group ID. A group ID can subscribe to multiple topics, such as Group 2 in Figure 1. You can configure subscriptions between groups and topics in the program. For more information, see the Optimization of resource application process section in Updates.

Scenarios

  • Load shifting

    Large activities, such as flash sales, red envelope snatching, and enterprise success, may cause high traffic pulses, and the system may become overloaded or even stops responding due to a lack of proper protection. The user experience may be affected because excessive requests fail upon many limits. Message Queue for Apache RocketMQ provides the load shifting feature to solve this problem.

  • Asynchronous decoupling

    As the core system of Taobao and Tmall primary sites, the transaction system can attract the attention of hundreds of downstream business systems, including logistics, shopping carts, credits, and stream computing analytics when each transaction order is created. 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 subscription of ordered messages

    Several scenarios need to ensure the sequence in daily life, such as the time-first principle of securities trading, order creation, payment, and refund in the trading system, and handling of boarding messages of passengers on flights. Ordered messages in Message Queue for Apache RocketMQ are sent and received in the first-in-first-out (FIFO) order.

  • Consistency of distributed transactions

    Final data consistency must be ensured in scenarios such as transaction systems and payment envelopes. Message Queue for Apache RocketMQ distributed transactions can implement decoupling between systems and ensure final data consistency.

  • Big data analytics

    Data creates value during movement. Traditional data analytics is mostly based on the batch computing model and cannot be performed in real time. The combination of Message Queue for Apache RocketMQ and Stream Compute of Alibaba Cloud allows you to conveniently analyze your business data in real time.

  • Distributed cache synchronization

    During Double 11, changes to commodity prices in different activities need to be perceived in real time. A large number of concurrent access requests to the database result in slow page response. The centralized cache restricts the traffic for commodity data changes due to bandwidth bottlenecks. To solve this problem, Message Queue for Apache RocketMQ provides a distributed cache to notify commodity data changes in real time.

For more information, see Scenarios.

Description

For more information, see Overview of features.

Pricing

For more information, see Overview.