【问题标题】:Have a Queue subscribed to multiple Queues, programmaticaly让一个队列以编程方式订阅多个队列
【发布时间】:2019-06-02 12:21:09
【问题描述】:

我有两个虚拟主题:T1、T2。我有一个名为 FOO 的消费者。

session.createTopic("VirtualTopic.T1");
session.createTopic("VirtualTopic.T2");

有了这个,我可以使用这个获取每个队列的消息:

destination = session.createQueue("Consumer.FOO.VirtualTopic.T1");
consumer = session.createConsumer(destination);
Message msg = consumer.receiveNoWait();

destination = session.createQueue("Consumer.FOO.VirtualTopic.T2");
consumer = session.createConsumer(destination);
Message msg = consumer.receiveNoWait();

有没有办法可以“订阅”一个新队列(我们将其命名为“FOOqueue”)到以前的队列 @9​​87654324@ 和 Consumer.FOO.VirtualTopic.T2

这样我可以创建一个只指向“FOOQueue”的消费者并获取所有消息(将来我可以从“FOOQueue”订阅其他队列并从其他队列获取消息)。

【问题讨论】:

  • 你熟悉distributed queues吗?因为对我来说,这就是你要问的。
  • 好吧,我不需要与其他经纪人沟通。我只需要一个代理,但可以有一个队列来订阅 1 个或多个队列,因此我可以只使用 1 个队列获取特定用户的所有消息。感谢您的回复@eis :)
  • 鉴于队列不订阅其他队列,并且您的问题包含订阅队列的消费者的代码,因此不清楚您要问什么。请澄清您的意思。
  • @TimBish 我想要的是从包含来自队列 Q1 和 Q2 的消息的队列(我们称之为 Q3)中消费。如果队列无法做到这一点,是否可以使用主题?

标签: java activemq message-queue messaging


【解决方案1】:

您要求的内容类似于 ActiveMQ 代理配置中定义的 Composite Destinations。您将定义一个复合目标,其中包含从其他一些队列转发的消息。如果您稍后需要添加更多转发,这当然需要重新配置代理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多