4.2. 将地址设置应用到一组地址
在 AMQ Broker 中,您可以使用通配符表达式来表示匹配的地址名称,将 address-setting
元素中指定的配置应用到 一组 地址。
以下小节描述了如何使用通配符表达式。
4.2.1. AMQ Broker 通配符语法
AMQ Broker 使用特定的语法在地址设置中表示通配符。通配符也可以用于安全设置,也可以在创建使用者时使用。
-
通配符表达式包含以句点(
.
)分隔的词语。 数字符号(
#
)和星号(*
)字符也有特殊含义,可以代替词语,如下所示:- 数字符号字符表示"匹配零个或多个单词的任意序列"。在表达式的末尾使用此选项。
- 星号字符表示"匹配单个词语"。在表达式中的任意位置使用它。
匹配不按字符执行,而是在每个分隔符边界上执行。例如,配置为在其名称中与 my
的队列匹配的 address-setting
元素与名为 myqueue
的队列 不匹配。
当多个 address-setting
元素匹配某个地址时,代理将配置最不特定的匹配项作为基准。字面表达式比通配符更为具体的,而星号(*
)比数字符号(#
)更具体。例如,my .destination
和 my.*
都与地址 my.destination
匹配。在这种情况下,代理首先应用 my.*
下找到的配置,因为通配符表达式不如字面上的特定。接下来,代理会覆盖 my.destination
address 设置元素的配置,它会覆盖所有通过 my.*
共享的配置。例如,根据以下配置,与 my.destination
关联的队列 将 max-delivery-attempts
设置为 3
,并且 last-value-queue
设置为 false
。
<address-setting match="my.*"> <max-delivery-attempts>3</max-delivery-attempts> <last-value-queue>true</last-value-queue> </address-setting> <address-setting match="my.destination"> <last-value-queue>false</last-value-queue> </address-setting>
下表中的示例说明了如何使用通配符匹配一组地址。
示例 | Description |
---|---|
|
|
|
匹配 |
|
匹配 |
|
匹配 |