有一个队列以编程方式订阅了多个队列

时间:2019-01-07 20:11:38

标签: java activemq message-queue messaging

我有两个虚拟主题: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”)“订阅”到先前的队列Consumer.FOO.VirtualTopic.T1Consumer.FOO.VirtualTopic.T2

这样,我可以创建仅指向“ FOOQueue”的使用者并获取所有消息(将来,我可以从“ FOOQueue”订阅其他队列,也可以从其他队列获取消息)。

1 个答案:

答案 0 :(得分:0)

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