名词解释

更新时间:

本文主要对云消息队列 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按照路由规则绑定起来。

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类型联合使用才能生效。一般情况下,生产者在向Exchange发送消息时,可以通过指定Routing Key来决定消息被路由到哪个或哪些Queue。

S

  • 实例

    • 一个独立的云消息队列 RabbitMQ 版资源实体,包含Vhost、Exchange、Queue等基本的资源要素。

  • 实例限流

    • 云消息队列 RabbitMQ 版实例的TPS流量峰值超过您所购买实例的TPS规格上限时,云消息队列 RabbitMQ 版实例会被限流。

      限流后的行为如下:

      • 云消息队列 RabbitMQ 版服务端会返回错误码信息。

      • 云消息队列 RabbitMQ 版服务端关闭当前请求的Channel。代码中可以捕获异常重新开启Channel。

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

  • 生产者

    • 消息生产者,即投递消息的程序。

  • 死信Exchange

    • 用于路由死信消息的Exchange。死信Exchange会根据死信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仍然存在的现象。