This topic introduces the RocketMQ related terms to help you better understand and use RocketMQ.
A topic is used to classify messages. It is the first-level classification. For more information, see Topics and tags.
A message is a carrier for transferring information in RocketMQ.
A message ID is a global unique identifier for a message, which is automatically generated by the RocketMQ system.
A message key is a unique identifier of the message’s service logic, which is set by the message producer.
A tag is used to further classify the messages under a topic. It is the second-level classification. For more information, see Topics and tags.
A producer, also known as a message publisher, produces and sends messages.
A producer instance is an object instance of a producer. Different producer instances can run in different processes or on different machines. The producer instance thread is safe and can be shared between multiple threads in the same process.
A consumer, also known as a message subscriber, receives and consumes messages.
A consumer instance is an object instance of a consumer. Different consumer instances can run in different processes or on different machines. Thread pool consumption information is configured in a consumer instance.
A group is a type of producers or consumers that produce or consume messages of the same type and publish or subscribe to messages based on the same logic.
The ID of the group.
Exactly-Once delivery semantics
The Exactly-Once delivery semantics is used to specify that messages sent to the message system can be processed by consumers only once. In other words, even if the message producer sends a message to the message system again, the message can still only be consumed by a consumer once. For more information, see Exactly-Once delivery semantics.
All consumers identified by the same group ID consume messages in an even manner. For example, a topic contains nine messages and a group contains three consumer instances. In this case, each instance consumes three messages. For more information, see Clustering and broadcasting consumption.
Each of the consumers identified by the same group ID consumer all messages once. For example, a topic contains nine messages and a group contains three consumer instances. In this case, each instance consumes nine messages. For more information, see Clustering and broadcasting consumption.
A producer sends a message to the RocketMQ broker, expecting the message to be delivered to a consumer at a specified time in the future. The message is a scheduled message. For more information, see Scheduled and delayed messages.
A producer sends a message to the RocketMQ broker, expecting the message to be delivered to a consumer after a specified period of time. The message is a delayed message. For more information, see Scheduled and delayed messages.
Transactional messages provide a distributed transaction processing function similar to X/Open XA to ensure transaction consistency. For more information, see Transactional messages.
An ordered message is a message that is published and consumed in order. Ordered messages in RocketMQ are classified into globally ordered messages and partitionally ordered messages. For more information, see Ordered messages.
Globally ordered message
All messages under a specified topic are published and consumed in the strict first-in-first-out (FIFO) order. For more information, see Ordered messages.
Partitionally ordered message
All messages under a specified topic are partitioned by the sharding key. Messages in one shard are published and consumed strictly in the FIFO order. A sharding key is a key field used in ordered messages to distinguish different partitions. It is completely different from the key used in normal messages. For more information, see Ordered messages.
A producer has sent messages to the RocketMQ broker but a consumer cannot consume all the messages in a short period of time due to limited consumption capability. Therefore, unconsumed messages are stored in the broker. This process is called message accumulation.
Consumers can filter messages by tag to receive only the message type they want. Message filtering is completed on the RocketMQ broker. For more information, see Message filtering.
A message trace is a complete route record of a message from its publication by a producer, to consumption by a consumer. It consists of the time, location, and other information on each node. Message traces clearly display the complete route from message delivery by message producers, to RocketMQ broker, to message consumption by consumers. It facilitates troubleshooting. For more information, see Message tracing.
Reset consumption offset
With the timeline as coordinates, reset the consumer progress of a topic subscribed by a message subscriber over the time span specified for persistent message storage (three days by default). After the consumption offset is reset, the subscriber can receive a message sent by the message producer to the RocketMQ broker after a set time point. For more information, see Reset consumer offset.
Dead-letter queues are used to process messages that cannot be consumed. When a message fails to be consumed for the first time, RocketMQ automatically retries the consumption of the message. If the message still cannot be consumed after the maximum number of retries is reached, the message cannot be properly consumed. Instead of immediately discarding the message, RocketMQ sends it to a particular queue of the corresponding consumer.
In RocketMQ, a message that cannot be properly consumed is called a dead-letter message, which is stored by a particular queue named dead-letter queue.
For more information, see Dead-letter queue.
Message routers are often used to synchronize messages between regions to ensure data consistency between regions. Relying on Express Connect, developed by Alibaba Cloud based on its superb infrastructure, RocketMQ message routers allows you to efficiently synchronize messages from countries to countries and regions to regions. For more information, see Global message routers.