ActiveMQ将现有队列转换为CompositeQueue

时间:2017-10-12 15:20:53

标签: jms activemq messagebroker

我会尽力解释这个。

当我将我从ActiveMQ队列收到的数据存储在几个不同的位置时,我决定构建一个复合队列,以便我可以单独处理每个位置的数据。

我遇到的问题是我目前在生产环境中拥有Queue。似乎将名为A的队列更改为复合队列(也称为A),其名称为B和C的虚拟目标会导致我丢失现有队列上的所有数据。它不会在启动时转发前面的消息。目前,我正在创建一个具有不同名称的新CompositeQueue,比如D,它将数据转发到B和C.然后我有一些笨重的代码阻止所有连接,直到我同时a)更新所有生成器以发送到D和b )使用消费者从A中提取数据并将其与生产者一起发送给D.

感觉相当混乱。有没有办法解决?理想情况下,我将能够保持相同的队列名称,将其所有当前数据发送到复合子队列,并且最后只将队列转发。

1 个答案:

答案 0 :(得分:0)

根据给定的描述,无法实现所需的行为,因为复合队列上的消息路由在消息在飞行中时起作用,而在该队列已经存储消息并且更改了代理配置之后的某个时间。您需要使用来自初始队列的过去消息(我猜它是)并将它们发送到所需的目的地。