This topic describes the features supported by ApsaraMQ for RocketMQ.

Overview

ApsaraMQ for RocketMQ provides a high availability message queuing service in multiple Alibaba Cloud regions. Multiple data centers are deployed in a single region to ensure high availability of services. If one data center is unavailable, applications can publish and subscribe to messages.

ApsaraMQ for RocketMQ supports TCP-based and HTTP-based access. This way, applications that are developed based on different programming languages can access ApsaraMQ for RocketMQ. You can deploy applications on Alibaba Cloud ECS instances or outside Alibaba Cloud. You can also embed applications into mobile terminals or IoT devices. Then, you can connect the applications that you deployed or embedded to ApsaraMQ for RocketMQ. This way, you can use these applications to publish and subscribe to messages. You can also access ApsaraMQ for RocketMQ over the Internet to receive and send messages. Features

Multi-protocol access

  • TCP: The TCP-based SDK access mode is more specialized, reliable, and stable than the HTTP-based access mode. ApsaraMQ for RocketMQ supports clients that use the following programming languages: Java, C, C++, and .NET.
  • HTTP: The RESTful style is used for HTTP. ApsaraMQ for RocketMQ supports HTTP-based access mode. This mode is easy to use and provides powerful capabilities for cross-network access. ApsaraMQ for RocketMQ supports clients that use the following programming languages: Java, C++, .NET, Go, Python, Node.js, and PHP.

Management tools

  • Web console: supports topic management, group management, message queries, message trace queries, and monitoring and alerting. For more information, see Console Guide.
  • OpenAPI: allows you to integrate ApsaraMQ for RocketMQ management tools into your console. For more information about the ApsaraMQ for RocketMQ API, see Release notes.

Message types

Normal messages

Normal messages are messages that have no special features in ApsaraMQ for RocketMQ. They are different from featured messages, such as scheduled messages, delayed messages, ordered messages, and transactional messages.

Scheduled messages and delayed messages

ApsaraMQ for RocketMQ allows producers to specify the length of time to wait before a scheduled or delayed message is published. The maximum length of time is 40 days.

Ordered messages

ApsaraMQ for RocketMQ allows consumers to consume ordered messages in a first-in-first-out (FIFO) order. The earliest published message is consumed first. Ordered messages are divided into partitionally ordered messages and globally ordered messages.

Transactional messages

ApsaraMQ for RocketMQ provides a distributed transaction feature that is similar to X/Open XA, ensuring transaction consistency.

Table 1. Message types
Message typeSupport for reliable synchronous transmissionSupport for reliable asynchronous transmissionSupport for one-way transmissionSupport for multi-thread transmissionPerformance
Normal messagesYesYesYesYesHighest
Transactional messages
Scheduled messages and delayed messages
Partitionally ordered messageYesNoNoNoHigh
Globally ordered messagesMedium

Message features

  • Message retry: After a consumer returns the response of a message retry, ApsaraMQ for RocketMQ redelivers the message based on the specified retry rule. For more information, see Message retry.
  • At-least-once delivery: ApsaraMQ for RocketMQ ensures that each message is consumed at least once. Consumers may receive the same message multiple times because ApsaraMQ for RocketMQ is developed based on a distributed architecture and uses a dynamic network. If a consumer restarts their applications, the consumers may receive the same message multiple times. Applications must process the same message multiple times without causing errors or inconsistencies in data. For more information about the best practices for consumption idempotence, see Consumption idempotence.
  • Message filtering: ApsaraMQ for RocketMQ allows you to configure message attributes to classify the messages that producers send to topics on the ApsaraMQ for RocketMQ broker. You can configure filter conditions in consumers so that the consumers can subscribe to messages that have the specified attributes in the topics. Then, the broker filters the messages sent by the producers and delivers only the messages that meet the specified conditions to the consumers.

Features

  • Query a message: ApsaraMQ for RocketMQ allows you to query messages by message ID, message key, and topic.
  • Query a message trace: A message trace records the routing information about a message that is sent from a producer to a ApsaraMQ for RocketMQ broker, and then to a consumer. This way, you can troubleshoot issues that occur.
  • Clustering consumption and broadcasting consumption: In clustering consumption mode, a message is processed only by a random consumer in a group in ApsaraMQ for RocketMQ. In broadcasting consumption mode, ApsaraMQ for RocketMQ publishes each message to all consumers registered in a group. This way, the message is consumed by each consumer at least once.
  • Reset consumer offsets: You can change the offset to the latest message to skip the accumulated messages for a consumer. You can also change the offset to the corresponding offset of a previous point for a consumer in time. The consumption starts from the offset that you specify.
  • Dead-letter queues: Messages that cannot be consumed are stored in a dead-letter queue for subsequent processing.
  • Dashboard: provides rich, comprehensive, and multi-dimensional statistical metrics. You can view metrics such as message production metrics, message consumption metrics, and message accumulation metrics from the instance, topic, and group dimensions.
  • Monitoring and alerting: You can use the monitoring and alerting feature of ApsaraMQ for RocketMQ to monitor the message consumption status of a topic to which a group subscribes and receive alert messages. This way, you can monitor the message consumption status in real time and resolve errors in a timely manner.