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