Подписать очередь на несколько очередей программным способом - PullRequest
0 голосов
/ 07 января 2019

У меня есть две виртуальные темы: 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» и также получать сообщения из других очередей).

1 Ответ

0 голосов
/ 08 января 2019

То, что вы запрашиваете, звучит как Составные пункты назначения , как определено в конфигурации брокера ActiveMQ. Вы должны определить составной пункт назначения, состоящий из сообщений, пересылаемых из некоторых других очередей. Это, конечно, требует переконфигурации брокера, если вам нужно добавить больше форвардов позже.

...