ActiveMQ——Destination高级特性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ——Destination高级特性相关的知识,希望对你有一定的参考价值。
一、通配符(wildcards)- wildcards用来支持名字分层体系,它不是JMS规范的一部分,是ActiveMQ的扩展
ActiveMQ支持一下三种wildcards
1:“.” 用于作为路径上名字间的分隔符
2:“*” 用于匹配路径上的任何名字
3:“>” 用于递归地匹配任何以这个名字开始的destination - 示例,假设有两个destinations
PRICE.STOCK.NASDAQ.IBM (IBM在NASDAQ的股价)
PRICE.STOCK.NYSE.SUNW (SUN在纽约证券交易所的股价)
那么:
1:PRICE.>:匹配任何产品的价格波动
2:PRICE.STOCK.>:匹配任何产品的股票价格波动
3:PRICE.STOCK.NASDAQ.:匹配任何在NASDAQ栽面的产品的股票价格变动
4:PRICE.STOCK..IBM:匹配任何IBM的产品的股票价格波动 - 客户化路径分隔符,比如想用“/”来替换“.”
<plugins> <destinationPathSeparatorPlugin/> </plugins>
二、组合队列
组合队列允许用一个虚拟的destination代表多个destinations。这样就可以通过composite destinations在一个操作中同时向多个queue发送消息。
1:客户端实现的方式
2:在xml配置实现的方式
3.使用filtered destinations,在xml配置实现的方式
4.避免在network连接broker中,出现重复消息
三、配置启动的Destinations
如果需要在ActiveMQ启动的时候,创建Destination的话,可以如下配置:
四、删除不活动的Destinations
一般情况下,ActiveMQ的queue在不使用之后,可以通过web控制台或是JMX方式来删除掉。也可以通过配置,使得broker可以自动探测到无用的队列(一定时间内为空的队列)并删除掉,回收响应资源。如下配置:
说明:
schedulePeriodForDestinationPurge:设置多长时间检查一次(毫秒),默认为0
inactiveTimeoutBeforeGC:设置当Destination为空后,多长时间被删除,默认为60
gcInactiveDestinations:设置删除不活动队列,默认为false
五、Destination选项
队列选项是给consumer在JMS规范之外添加的功能特性,通过在队列名称后面使用类似URL的语法添加多个选项。包括:
使用示例:
六、虚拟Destinations
为了解决这两个问题,ActiveMQ中实现了虚拟Topic的功能
七、 镜像队列
八、每个Destination单独策略配置
以上是关于ActiveMQ——Destination高级特性的主要内容,如果未能解决你的问题,请参考以下文章