ActiveMQ学习笔记(10)-镜像队列

    队列中的消息只能被一个消费者消费,如果我们希望能够监视生产者和消费者之间的消息流,可以使用镜像队列。

    镜像队列:broker会把发送到某个队列中的所有消息转发到一个名称类似的主题中,因此监控程序可以监听这个主题。

    为了启用镜像队列,需要在activemq.xml中将broker的useMirroredQueues设置为true,然后通过destinationInterceptors设置其它属性。镜像主题的前缀(prefix)默认为“VirtualTopic.Mirror. ”。

    下面给出一个具体的配置示例。

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" 
                     dataDirectory="${activemq.data}" useMirroredQueues="true">
    <transportConnectors>
          <transportConnector uri="tcp://localhost:61616"/>
    </transportConnectors>
    <destinationInterceptors>
        <mirroredQueue copyMessage = "true" prefix="Mirror.Topic."/>
    </destinationInterceptors>
    ……
</broker>


向队列Queue.Tool发送消息,那么生产者端的代码

String subject = "Queue.Tool";
……
Queue  queue = session.createQueue(subject);



主题订阅者端的代码,注意前缀和队列名的拼接,莫因为“.”出错。

String subject = " Mirror.Topic.Queue.Tool";
……
Topic topic = session.createTopic(subject);


你可能感兴趣的:(activemq,镜像队列,MirroredQueue)