2017-10-12 81 views
0

我会尽我所能解释这一点。ActiveMQ将现有的队列转换为CompositeQueue

正如我存储我的数据,我从我的ActiveMQ的队列接收在若干不同的位置,我已决定建立一个复合队列,所以我可以分别处理每个位置的数据。

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

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

回答

0

从给定的所期望的行为的说明是没有可能的消息上的复合队列路由当消息是在飞行中和不晚些时候当该队列已经存储的消息和代理配置被改变的工作原理。你需要消耗来自初始队列(我猜是这样)的过去消息,并将它们发送到所需的目的地。

+0

我很害怕那样;它使编写向后兼容的代码(在我的情况下)变得困难。感谢您确认我的解决方案是正确的方向。 –