本文主要对消息队列 AMQP 涉及的专有名词和术语进行定义和解释,方便您更好地理解相关概念并使用。
虚拟主机(Virtual Host),类似于 Namespace 命名空间的概念,逻辑隔离。每个用户可以创建的 Vhost 个数,以及每个 Vhost 里可以创建的 Exchange 和 Queue 个数。
消息队列,每个消息都会被投入到一个或多个 Queue 里。
Auto Delete
在订阅该 Queue 消息的最后一个 Consumer 取消订阅该 Queue 的消息后,是否自动删除该 Queue。取值说明如下所示:
Arguments:针对 Queue 的参数设置,可用于设置死信 Exchange、死信 Routing Key 和消息过期时间。取值说明如下所示:
eadLetterExchange
指定死信消息发往的 Exchange。
消息生产者,即投递消息的程序。
消息消费者,即接收消息的程序。
TCP 连接,Producer 或 Consumer 与消息队列 AMQP 间的物理 TCP 连接。
在客户端的每个物理 TCP 连接里,可建立多个 Channel,每个 Channel 代表一个会话任务。
Producer 将消息发送到 Exchange ,由 Exchange 将消息路由到一个或多个 Queue 中(或者丢弃),Exchange 按照相应的 Binding 逻辑将消息路由到 Queue。
Exchange 类型
示例:
Routing Key 为 use.stock 的消息会转发给绑定匹配模式为 * .stock、use.stock、 * . * 和 #.use.stock.# 的 Queue;* 表示匹配一个任意词组,# 表示匹配 0 个或多个词组。
一套绑定规则,用于告诉 Exchange 消息应该被存储到哪个 Queue。它的作用是把 Exchange 和 Queue 按照路由规则绑定起来。
Producer 在发送消息给 Exchange 时,需要指定一个 Routing Key 来设定该消息的路由规则,而 Routing Key 需要与 Exchange 类型及 Binding Key 联合使用才能生效。
一般情况下,Exchange 类型与 Binding Key 配置后,Producer 在发送消息给 Exchange 时,可以通过指定 Routing Key 来决定消息投放到哪个 Queue。