This topic describes the terms that are used in ApsaraMQ for RabbitMQ to help you better understand and use ApsaraMQ for RabbitMQ.
A
alternate exchange
Alternate exchanges (AEs) are bound to existing exchanges and are used to receive messages that fail to be routed from existing exchanges to queues.
arguments
Parameters that are used to configure queues. You can use these parameters to specify information such as the time-to-live (TTL) for messages, information about dead-letter exchanges, and dead-letter routing keys.
auto delete
An attribute of exchanges or queues. If you set this attribute to true for an exchange, the system automatically deletes the exchange after all queues are unbound from the exchange. If you set this attribute to true for a queue, the system automatically deletes the queue after all subscriptions to this queue are canceled.
B
binding
A set of routing rules. An exchange determines the queues to which the exchange routes messages based on the binding that is specified. The system binds an exchange to a queue based on the routing rules that are included in the binding.
C
channel
Multiple channels can be created over each physical Transmission Control Protocol (TCP) connection on a client. Each channel is used to run a session task. For more information, see Connection and channel.
connection
The physical TCP connection that is established between a producer or a consumer and an ApsaraMQ for RabbitMQ broker. For more information, see Connection and channel.
consumer
A program that receives and consumes messages.
D
dead-letter exchange
An exchange that is used to route dead-letter messages to the dead-letter queue. A dead-letter exchange delivers dead-letter messages to the dead-letter queue based on dead-letter routing keys and headers attributes. All common types of exchanges, such as direct exchanges, can be used as dead-letter exchanges. For more information, see Dead-letter exchanges.
dead-letter routing key
A set of routing rules based on which the system routes dead-letter messages. If you do not specify a dead-letter routing key for a dead-letter message, the routing key of the message is used as the dead-letter routing key.
dead-letter message
A message that is sent to a dead-letter exchange. A message may be sent to a dead-letter exchange in the following scenarios:
The requeue parameter is set to false, and the consumer uses
basic.reject
orbasic.nack
to send negative acknowledgments (NACKs) for messages.The message fails to be consumed after being re-sent 16 times. For more information, see Message timeout and retry.
The message expires. The time for which the message is stored in the queue exceeds the specified message TTL. For more information, see Message TTL.
dead-letter queue
The queue that is bound to a dead-letter exchange. Dead-letter queues are used to store dead-letter messages.
delayed messages
A delayed message is not immediately sent to consumers after the ApsaraMQ for RabbitMQ broker receives the message. The broker is configured to send the message to consumers after a specific period of time elapses. For more information, see Delayed messages.
durability
The durability of queues, exchanges, and bindings. Queues, exchanges, and bindings are retained after the broker restarts.
E
exchange
A message routing agent. A producer sends a message to an exchange and then the exchange routes the message to one or more queues based on the attributes and the content of the message. For more information, see Exchange.
I
internal
An attribute of exchanges. An internal exchange can be bound to another exchange.
instance
An instance is an independent ApsaraMQ for RabbitMQ resource entity. An instance contains basic resources such as virtual hosts (vhosts), exchanges, and queues.
instance throttling
If the peak transactions per second (TPS) of an ApsaraMQ for RabbitMQ instance exceeds the TPS threshold value that is specified when you purchase the ApsaraMQ for RabbitMQ instance, throttling is triggered for the instance.
The system performs the following operations after an instance is throttled:
The ApsaraMQ for RabbitMQ broker returns an error code and an error message.
The ApsaraMQ for RabbitMQ broker closes the channel of the current request. You can detect exceptions in the code and reopen the channel.
For more information, see Best practices for instance throttling.
M
message ID
A message ID is an optional message attribute of the short string type. In most business scenarios, an ID is the unique identifier of a message. You can use message IDs to track and identify messages in scenarios such as order tracking and ticket processing. ApsaraMQ for RabbitMQ brokers do not ensure the idempotence of messages. Message idempotence means that the consumption result of a message remains the same and messaging systems are not affected even if the message is retried multiple times. To ensure message idempotence, you must specify a unique identifier for each message and configure the corresponding parameters on your ApsaraMQ for RabbitMQ consumer clients. For more information, see Message idempotence.
message TTL
The TTL for messages in a queue. If the retention period of a message in the queue exceeds the TTL for messages in the queue, the message expires. You must set the TTL for messages to a non-negative integer. The value of this parameter is in milliseconds. For example, if the TTL for messages in a queue is 1,000 milliseconds, messages can be retained for up to 1 second in the queue. For more information, see Message TTL.
P
producer
A producer is a program that produces and publishes messages.
Q
queue
Message queues are used to store messages. Each message can be routed to one or more queues.
R
routing key
When a producer sends a message to an exchange, the producer specifies a routing key that indicates the routing rules of the message. The routing key takes effect based on the exchange type. In most cases, the routing key of a message determines the queues to which the message is routed.
V
vhost
A virtual host that is used to logically isolate resources, including exchanges, queues, and bindings. An application can run on an independent vhost in a secure manner and is not affected by other applications. An instance can contain multiple vhosts, and a vhost can contain multiple exchanges and queues. To connect a producer or a consumer to ApsaraMQ for RabbitMQ, you must specify a vhost for the producer or consumer.