我有两个虚拟主题: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.T1
和 Consumer.FOO.VirtualTopic.T2
?
这样我就可以创建一个仅指向“FOOQueue”的消费者并获取所有消息(将来我可以从“FOOQueue”订阅其他队列并从其他队列获取消息)。
最佳答案
您要求的内容听起来像 Composite Destinations如 ActiveMQ 代理配置中所定义。您将定义一个复合目标,其中包含从其他一些队列转发的消息。如果您稍后需要添加更多转发,这当然需要重新配置代理。
关于java - 以编程方式让一个队列订阅多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54081110/