我们试图在activemq中使用消息。生产者(我们没有控制权)将不同的消息放在队列和主题中。作为一个消费者,我怎样才能配置我的客户端同时使用队列和主题?我能想到的唯一方法是创建两个不同的消费者,一个连接到队列,另一个连接到主题。 这种方法是否正确,或者我能做些什么来创建一个同时收听两者的消费者?ActiveMQ - 同时从队列和主题中消费
感谢 ķ
我们试图在activemq中使用消息。生产者(我们没有控制权)将不同的消息放在队列和主题中。作为一个消费者,我怎样才能配置我的客户端同时使用队列和主题?我能想到的唯一方法是创建两个不同的消费者,一个连接到队列,另一个连接到主题。 这种方法是否正确,或者我能做些什么来创建一个同时收听两者的消费者?ActiveMQ - 同时从队列和主题中消费
感谢 ķ
ActiveMQ的标准分发捆绑了Apache的骆驼。
鉴于您正在运行标准的ActiveMQ--您可以为Camel添加一条小路由,为您做到这一点。
编辑/ conf文件夹中的“camel.xml”。
添加两条路线:
<route>
<from uri="activemq:topic:someTopic"/>
<to uri="activemq:queue:comboQueue"/>
</route>
<route>
<from uri="activemq:queue:someQueue"/>
<to uri="activemq:queue:comboQueue"/>
</route>
确保此camel.xml包含在ActiveMQ的配置,如activemq.xml中。
现在,只需从“comboQueue”消费,你可以在一个地方得到所有消息。
感谢您的回复。不幸的是,我们正在使用的activemq实例(作为消费者)安装在我们无法控制的机器上。我们所能控制的是代理连接URL。我们无法更改任何activemq配置。有没有办法解决它? –
Na。那么你做不了多少。你需要设置两个监听器。但是,您当然可以使用上面的Camel配置来运行本地ActiveMQ实例,以将两个不同的目标合并到本地队列中。只需将ActiveMQ中的Conncetion工厂配置到远程ActiveMQ实例即可。 '
您可以使用ActiveMQ的composite destination功能实现此目的,该功能允许您监听多个目的地和不同类型的目的地。
是的,这是相当多的路要走,两个端点的听众。 –