This topic lists all the features that are supported by Message Queue for Apache RocketMQ.
Message Queue for Apache RocketMQ provides highly available cloud messaging services in multiple regions of Alibaba Cloud. Multiple data centers are deployed in a single region, which makes the services highly available. Even if an entire data center is unavailable, message publishing services are still available to applications.
- TCP: Different from the simple HTTP-based access mode, the TCP-based SDK access mode is more specialized, reliable, and stable. Supported languages include Java, C, C++, and .NET.
- HTTP: HTTP request and response structures use the RESTful style. Message Queue for Apache RocketMQ supports HTTP. Therefore, it is easy to use, fast to access, and powerful in cross-network access. Message Queue for Apache RocektMQ supports clients in seven programming languages: Java, C++, .NET, Go, Python, Node.js, and PHP.
- Web console: supports topic management, group management, message query, message trace display and query, resource statistics, and monitoring and alert management.
- API: allows you to integrate Message Queue for Apache RocketMQ management tools into your own console. For more information about Message Queue for Apache RocketMQ API versions, see Release notes.
- Normal messages: Normal messages do not have special features in Message Queue for Apache RocketMQ. They are different from scheduled and delayed messages, ordered messages, and transactional messages.
- Transactional messages: Message Queue for Apache RocketMQ provides a distributed transaction processing feature that is similar to X/Open XA to ensure final transaction consistency.
- Scheduled messages and delayed messages: Message Queue for Apache RocketMQ allows producers to specify the length of time to wait before a scheduled or delayed message is delivered. The maximum length is 40 days.
- Ordered messages: Message Queue for Apache RocketMQ allows consumers to consume messages in the order that messages are sent.
- Message retry: After the consumer returns the response to a message retry, Message Queue for Apache RocketMQ resends the message based on the corresponding retry rules. For more information, see Message retry.
- At-least-once delivery: Message Queue for Apache RocketMQ guarantees that a message is consumed once. Due to the distribution feature and transient network conditions of Message Queue for Apache RocketMQ or re-publishing of applications, consumers may receive repeated messages. Applications must be designed to process a message multiple times without producing errors or inconsistencies. For more information about the best practices for consumption idempotence, see Consumption idempotence.
- Query messages: Message Queue for Apache RocketMQ allows you to query messages based on the message ID, message key, or topic.
- Query a message trace: Message traces clearly display the complete route from message delivery by message producers, to the Message Queue for Apache RocketMQ broker, and then to message consumption by consumers. This facilitates troubleshooting.
- Clustering consumption and broadcasting consumption: In clustering consumption mode, a message needs only to be processed by a consumer in the cluster in Message Queue for Apache RocketMQ. In broadcasting consumption mode, Message Queue for Apache RocketMQ broadcasts each message to all consumers registered in the cluster to ensure that the message is consumed by each consumer at least once.
- Reset consumer offsets: You can reset the consumption progress by time or offset to track messages or discard accumulated messages.
- Dead-letter queues: Messages that cannot be consumed are stored into a special dead-letter queue for subsequent processing.
- Message router: Message routers are often used to synchronize messages between regions to ensure data consistency between regions.
- Resource reports: This module allows you to collect statistics about message production and consumption. It allows you to view the total number of messages that a topic receives from producers or the transactions per second (TPS) for message production in a specific period of time. It also allows you to view the total number of messages that a topic sends to a group ID or TPS for message consumption in a specific period of time.
- Monitoring and alerting: You can use the monitoring and alerting feature of Message Queue for Apache RocketMQ to monitor the message consumption status of a topic subscribed to by a group ID and receive alert messages. This helps you learn the message consumption status in real time and handle consumption exceptions at the earliest opportunity.