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
地址设置元素的配置,它会覆盖与 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>
下表示例演示了如何使用通配符匹配一组地址。
示例 | 描述 |
---|---|
|
|
|
匹配 |
|
匹配 |
|
匹配 |