第 4 章 配置地址和队列
4.1. 地址、队列和路由类型
在 AMQ Broker 中,寻址模型包含三个主要概念: 地址、队列 和 路由类型。
地址 代表消息传递端点。在配置中,为典型的地址指定唯一名称、一个或多个队列,以及路由类型。
队列与 地址相关联。每个地址可以有多个队列。传入的消息与地址匹配后,该消息将发送到一个或多个队列,具体取决于配置的路由类型。可以将队列配置为自动创建和删除队列。您还可以配置一个地址(以及其关联队列)作为 durable。只要队列中的消息也持久存在,durable 队列中的消息可在崩溃或重启代理后保留。与之相反,即使消息本身是持久的,队列中的消息不会在崩溃或重启代理后保留。
路由类型 决定了如何将消息发送到与地址关联的队列。在 AMQ Broker 中,您可以使用两个不同的路由类型配置地址,如表所示。
如果您希望您的消息路由到… | 使用此路由类型… |
---|---|
匹配地址内的单个队列,以点对点的方式 |
|
匹配地址中的每个队列,以发布订阅的方式 |
|
地址必须至少有一个定义的路由类型。
每个地址可以定义多个路由类型,但不推荐这样做。
如果一个地址同时定义了两个路由类型,并且客户端没有其首选项,则代理会默认使用 multicast
类型。
其他资源
有关配置的更多信息:
-
点到点的消息使用
anycast
路由类型,请参阅 第 4.3 节 “为点到点的消息传递配置地址” -
使用
多播路由
类型发布订阅消息,请参见 第 4.4 节 “为发布订阅消息配置地址”
-
点到点的消息使用
4.1.1. 地址和队列命名要求
在配置地址和队列时请注意以下要求:
要确保客户端可以连接到队列,无论客户端使用的有线协议,您的地址和 队列名称不应 包括以下任意字符:
&
::
,
?
>
-
数字符号(
#
)和星号(*
)字符保留给通配符表达式,不应在地址和队列名称中使用。更多信息请参阅 第 4.2.1 节 “AMQ Broker 通配符语法”。 - 地址和队列名称不应包含空格。
-
要在地址或队列名称中分隔词语,请使用配置的分隔符。默认分隔符为句点(
.
)。更多信息请参阅 第 4.2.1 节 “AMQ Broker 通配符语法”。