本文主要对消息队列RabbitMQ版涉及的专有名词及术语进行定义和解析,方便您更好地理解相关概念并使用消息队列RabbitMQ版

A

Alternate Exchange
备份Exchange,简称AE,用于接收配置了备份Exchange的Exchange路由失败的消息。
Arguments
Queue的参数,可用于设置死信Exchange、消息过期时间、死信Routing key等。
Auto Delete
自动删除属性,对于设置了自动删除的Exchange,如果绑定到该Exchange的最后一个Queue解除绑定,那么该Exchange将会自动删除。对于设置了自动删除的Queue,如果订阅该Queue的最后一个消费端取消订阅后,那么该Queue将会自动删除。

B

Binding
一套绑定规则,用于告诉Exchange消息应该被存储到哪个Queue。它的作用是把Exchange和Queue按照路由规则绑定起来。
Binding Key
用于告知Exchange应该将消息投递到哪些Queue中。

C

Channel
在客户端的每个物理TCP连接里,可建立多个Channel,每个Channel代表一个会话任务。详情请参见Connection和Channel
Connection
TCP连接,生产者或消费者与消息队列RabbitMQ版间的物理TCP连接。详情请参见Connection和Channel

E

Exchange
生产者将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中。Exchange根据消息的属性或内容路由消息。详情请参见Exchange

I

Internal
内建类型,该类型的Exchange用于Exchange之间的绑定。

Q

Queue
消息队列,每个消息都会被投入到一个或多个Queue里。

R

Routing Key
生产者在向Exchange发送消息时,需要指定一个Routing Key来设定该消息的路由规则。 Routing Key需要与Exchange类型及Binding Key联合使用才能生效。一般情况下,生产者在向Exchange发送消息时,可以通过指定Routing Key来决定消息被路由到哪个或哪些Queue。

S

实例
一个独立的消息队列RabbitMQ版资源实体,包含Vhost、Exchange、Queue等基本的资源要素。
生产者
消息生产者,即投递消息的程序。
死信Exchange
用于路由死信消息的Exchange。死信Exchange会根据Binding Key、死信Routing Key、Header属性将死信消息投递至死信Queue。死信Exchange可以是任何一种常见类型的Exchange,例如Direct Exchange,详情请参见死信Exchange
死信Routing Key
死信消息的路由规则。如果不设置死信消息的Routing Key,则死信消息的Routing Key默认为消息本身的Routing Key。
死信消息
被重新发送到死信Exchange的消息。消息变成死信消息的可能原因如下:
  • requeue参数被设置为 false,消费者使用basic.rejectbasic.nack否定应答(NACK)消息。
  • 消息重试次数超过16次,消息重试失败。详情请参见消息重试
注意 过期消息或超过队列最大长度被丢弃的消息不会成为死信消息。
死信Queue
死信Exchange绑定的Queue,用于存储死信消息。

V

Vhost
虚拟主机(Virtual Host),用作逻辑隔离,分别管理各自的Exchange、Queue和Binding,使得应用安全的运行在不同的Vhost实例上,相互之间不会干扰。一个实例下可以有多个Vhost,一个Vhost里面可以有若干个Exchange和Queue。生产者和消费者连接消息队列RabbitMQ版需要指定一个Vhost。

X

消费者
消息消费者,即接收消息的程序。
消息存活时间
消息在Queue中的有效期。某条消息在Queue中的留存时间超过配置的消息存活时间时,则该消息过期。消息存活时间的值必须为非负整型数,单位为毫秒。例如,某条消息的存活时间的值是1000,则代表该消息最多会在Queue中存活1秒。详情请参见消息存活时间

Y

延时消息
生产者将消息发送到消息队列RabbitMQ版服务端,但并不期望这条消息立马投递,而是延迟一定时间后才投递到消费者进行消费,该消息即延时消息。详情请参见延时消息
永久性
在服务器重启之后Queue、Exchange以及相应Binding仍然存在的现象。