NMS.ActiveMQ 通配符
我们支持目标通配符,以方便地支持联合命名层次结构。这种概念在金融市场数据中已流行了一段时间,它是一种将事件(如价格变化)组织到层次结构中并使用通配符来轻松订阅您感兴趣的信息范围的方法。
例如,假设您正在从股票交易所数据流中发送价格消息。您可以使用某种目标,例如
PRICE.STOCK.NASDAQ.ORCL
发布纳斯达克的 Oracle 公司价格,以及PRICE.STOCK.NYSE.IBM
发布纽约证券交易所的 IBM 价格
然后,订阅者可以使用精确的目标来订阅它所需的确切价格。或者,它可以使用通配符来定义目标的层次结构模式匹配以进行订阅。
支持的通配符
我们支持以下通配符,这些通配符是相当标准的做法;通配符不是 JMS 规范的一部分,而是自定义增强功能。
.
用于分隔路径中的名称*
用于匹配路径中的任何名称>
用于递归匹配从该名称开始的任何目标
例如,使用上面的示例,这些订阅是可能的
订阅 | 含义 |
---|---|
PRICE.> |
任何交易所的任何产品的任何价格 |
PRICE.STOCK.> |
任何交易所的任何股票的价格 |
PRICE.STOCK.NASDAQ.* |
纳斯达克的任何股票价格 |
PRICE.STOCK.*.IBM |
任何交易所的任何 IBM 股票价格 |
注意: 在您的通配符表达式中,不要在 >
之后指定任何字符串,它将被忽略。例如,使用通配符 PRICE.>.IBM
也将匹配 PRICE.STOCK.NASDAQ.FB.
使用“>” 实际上匹配目标名称结束前的所有内容。
自定义路径分隔符
从 5.5.0 版本开始,我们支持 插件,它允许客户端使用客户路径分隔符。因此,而不是
FOO.BAR.*
您可以使用
FOO/BAR/*
到
<plugins>
.....
<destinationPathSeparatorPlugin/>
</plugins>
请注意,如果您想让它与其他插件(例如 安全)正常工作,则应将此插件添加为最后一个插件。
此插件将使用的默认路径分隔符是 /
。您可以使用 pathSeparator
属性进一步自定义它。