ActiveMQ中Destination高级特性一

Destination高级特性一

这一篇章我们主要说一下Destination的一些高级特性,主要内容有通配符和组合队列。下一篇我们还会讲解Destination的一些重要的特性。

一.高级特性之Wildcards(通配符)

Wildcards用来支持名字分层体系,是ActiveMQ的扩展。

ActiveMQ支持以下三种wildcards:

1.“.”用于作为路径上名字间的分隔符。

2.“*”用于匹配路径上的任何名字。

3.“>”用于递归地匹配任何以这个名字开始的destination

 

二.高级特性之Composite Destination-1(组合队列)

  组合队列允许用一个虚拟的destination代表多个destination。这样就可以通过composite destination 在一个操作中同时向多个queue发送消息。

  1. 在客户端实现的方式

在composite destination 中,多个destination之间采用“,”分割。

Queue queue = new ActiveMQQueue(“que1, que2” );

如果你希望使用不同类型的destination,那么需要加上前缀如queue://或topic://

     Queue queue = new ActiveMQQueue(“que1, topic://topic1”);

  1. 在xml配置实现的方式

<destinationInterceptors>

  <virtualDestinationInterceptor>

<virtualDestinations>

  <compositeQueue name=”MY.QUEUE”>

      <forwardTo>

           <queue physicaName=”que1”/>

           <queue physicaName=”que2”/>

</forwardTo>

</compositeQueue>

</virtualDestinations>

</virtualDestinationInterceptor>

</destinationInterceptors>

  1. 使用filetered destinations,在xml配置实现的方式

<destinationInterceptors>

  <virtualDestinationInterceptor>

<virtualDestinations>

  <compositeQueue name=”MY.QUEUE”>

      <forwardTo>

       <fileteredDestination selector=”odd = ‘yes’” queue=”que1”/>

       <fileteredDestination selector=”i = 5” topic=”queue2”/>

</forwardTo>

</compositeQueue>

</virtualDestinations>

</virtualDestinationInterceptor>

</destinationInterceptors>

  1. 避免在network连接broker中,出现重复消息

<networkConnectors>

   <networkConnector url=”static://(tcp://localhost:61617)”>

       <excludedDestinations>

           <queue physicalName=”Consumer.*.VirtualTopic.”/>

       </excludedDestinations>

</networkConnector>

</networkConnectors>

三.Destination高级特性之Configure Strartup Destinations

   如果需要在ActiveMQ启动的时候,创建Destination的话,可以有如下配置

   <broker xmlns=”http://activemq.apache.org/schema/core”>

     <destinations>

         <queue physicalName=”FOO.BAR”/>

         <topic physicalName=”SOME.TOPIC”/>

     </destinations>

</broker>

四.Destination高级特性之Delete Inactive Destinations

一般情况下,ActiveMQ的queue在不使用之后,可以通过web控制台或是JMX方式来删掉。当然,也可以通过配置,使得broker可以自动探测到无用的队列(一定时间内为空的队列)并删掉,回收响应资源。可以如下配置:

<broker xmlns=”http://activemq.apache.org/schema/core”

schedulePeriodForDestinationPurge>

  <destinationPolicy>

<policyMap>

  <policyEntries>

     <policyEntry queue=”>” gcInactiveDestinations=”true” inactiveTimoutBeforeGC=”3000”/>

  </policyEntries>

</policyMap>

  </destinationPolicy>

</broker>

说明:

SchedulePerioForDestinationPurge:设置多长时间检查一次,这里是10秒,默认是为0。

InactiveTimoutBeforeGC:设置当Destination为空后,多长时间被删除,这里是30秒,默认为60。

gcInactiveDestinations: 设置删除掉不活动队列,默认为false。

五.Destination高级特性之Destination Options

队列选项是给consumer在JMS规范之外添加的功能特性,通过在队列名称后面使用类似URL的语法添加多个选项。  在这里,其实是设置consumer的属性的,后面我们再详细讲,在这里用处不大。

转载于:https://www.cnblogs.com/jiabolin/p/6574043.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值