【问题标题】:ActiveMQ converting existing Queue to CompositeQueueActiveMQ 将现有队列转换为 CompositeQueue
【发布时间】:2018-03-24 14:37:38
【问题描述】:

我会尽力解释这一点。

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

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

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

【问题讨论】:

    标签: jms activemq messagebroker


    【解决方案1】:

    根据给出的描述,所需的行为是不可能的,因为复合队列上的消息路由在消息正在传输时起作用,而不是稍后该队列已经存储消息并且代理配置发生更改时。您需要从初始队列(我猜是 A)中使用过去的消息并将它们发送到所需的目的地。

    【讨论】:

    • 我害怕那个;它使编写向后兼容的代码(在我的情况下)变得困难。感谢您确认我的解决方案是正确的前进方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多