本文主要对云消息队列 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之间的绑定。

M

Message ID
Message ID(消息标识符)是消息的可选属性,类型为short string。Message ID在业务上通常被设置为唯一,适用于追踪和识别销售单、工单等需要保证消息唯一的场景。云消息队列 RabbitMQ 版服务端不会对消息进行幂等处理。如需实现消息幂等,即如果消息重试多次,消费端对该重复消息消费多次与消费一次的结果是相同的,并且多次消费没有对系统产生副作用,在为每条消息设置唯一Message ID的基础上,您还需要在云消息队列 RabbitMQ 版的Consumer客户端对消息进行幂等处理,具体信息,请参见消息幂等

Q

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

R

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

S

实例
一个独立的云消息队列 RabbitMQ 版资源实体,包含Vhost、Exchange、Queue等基本的资源要素。
实例限流
云消息队列 RabbitMQ 版实例的TPS流量峰值超过您所购买实例的TPS规格上限时,云消息队列 RabbitMQ 版实例会被限流。
限流后的行为如下:
  • 云消息队列 RabbitMQ 版服务端会返回错误码信息。
  • 云消息队列 RabbitMQ 版服务端关闭当前请求的Channel。代码中可以捕获异常重新开启Channel。

具体信息,请参见实例限流最佳实践

生产者
消息生产者,即投递消息的程序。
死信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中存在的时间超过了设置的消息存活时间。具体信息,请参见消息存活时间
死信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仍然存在的现象。