4.2. 将地址设置应用到一组地址
在 AMQ Broker 中,您可以使用通配符表达式来代表匹配的地址名称,将 address-setting 元素中指定的配置应用到 一组 地址。
以下小节介绍了如何使用通配符表达式。
4.2.1. AMQ Broker 通配符语法 复制链接链接已复制到粘贴板!
AMQ Broker 使用特定的语法来代表地址设置中的通配符。通配符也可用于安全设置,也可以在创建消费者时使用。
-
通配符表达式包含以句点(
.)分隔的词语。 数字符号 (
#) 和星号 (*) 字符还有特殊的用处,可以替代一个词,例如:- 数字符号字符表示"匹配任何 0 个或更多连续的词"。在您的表达式末尾使用它。
- 星号表示"匹配单个单词"。在您的表达式中的任何位置使用它。
匹配不是按照字符进行的,而是根据分割的字符段进行的。例如,一个 address-setting 项被配置为匹配名称中带有 my 的队列将不匹配名为 myqueue 的队列。
当多个 address-setting 元素与地址匹配时,代理会使用最特定匹配项的配置作为基准进行覆盖。表达式中的字面字符比通配符更具体,星号 (*) 比数字符号更具体 (#)。例如,my.destination 和 my.* 都会匹配地址 my.destination。在这种情况下,代理首先应用 my ö 下发现的配置,因为通配符表达式不具体于字面数。接下来,代理覆盖 my.destination 地址设置元素的配置,它覆盖与 my the 共享的任何配置。例如,如果以下配置,与 my.destination 关联的队列会将 max-delivery-attempts 设置为 3,last-value-queue 设置为 false。
下表中的示例说明了如何使用通配符来匹配一组地址。
| 示例 | 描述 |
|---|---|
|
|
|
|
|
匹配 |
|
|
匹配 |
|
|
匹配 |
4.2.2. 配置代理通配符语法 复制链接链接已复制到粘贴板!
以下步骤演示了如何自定义用于通配符地址的语法。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 在配置中添加 <
wildcard-addresses> 部分,如下例所示。Copy to Clipboard Copied! Toggle word wrap Toggle overflow enabled-
当设置为
true时,指示代理使用您的自定义设置。 delimiter-
提供自定义字符作为
分隔符替代默认字符(.)。 any-words-
作为
any-words的值提供的字符代表“匹配 0 个或更多个序列”,并将替换默认的#。在您的表达式末尾使用此字符。 single-word-
作为
single-word的值提供的字符代表“匹配一个词”,并将替换默认的*。在您的表达式中的任何位置使用此字符。