将消息从一个队列复制到另一个队列



我在ActiveMQ中创建了两个队列:一个是Master,另一个是Audit

我所有的消息首先进入Master。我希望Master中的所有消息都自动复制(而不是移动)到Audit队列。

ActiveMQ或Camel中是否有任何配置可以做到这一点?

Apache ActiveMQ有这个现成的功能。您可以使用它对镜像队列的支持

  • https://activemq.apache.org/mirrored-queues.html

以下内容来自链接页面:

启用镜像队列

默认情况下镜像队列是禁用的;启用它将导致为您使用的每个队列创建一个虚拟主题。要启用镜像队列,请在BrokerService上设置useMirroredQueues属性,或者在Xml Configuration的元素中添加以下内容:

<destinationInterceptors>
    <mirroredQueue copyMessage = "true" postfix=".qmirror" prefix=""/>
</destinationInterceptors>

这将创建一个名为"* "的主题。

我猜你正在寻找窃听模式。例如:

<route>
    <from uri="jms:master_queue"/>
    <wireTap uri="jms:audit_queue"/>
    <to uri="to_do_something"/>
</route>