Итак, учитывая, что вы публикуете тему, вы хотите потреблять сообщения из очереди. Я предполагаю, что вы используете ActiveMQ, так как вы добавили этот тег.
Основная причина этой настройки - загрузить баланс нескольких узлов кластера потребителя. Обычные прочные подписки не позволят это в JMS 1.x. Я думаю, ваше дело похоже.
В общем JMS это невозможно. Однако в JMS 2.0 долговременные подписки могут быть сбалансированы по нагрузке и, следовательно, работать немного как очереди. Не все брокеры JMS реализуют JMS 2.0. ActiveMQ не реализует JMS 2.0, но ActiveMQ Artemis.
ActiveMQ позволяет это по понятию «Виртуальные темы». Используя Virtual Topics, вы можете дать теме определенное имя, скажем, VirtualTopic.MyTopic пересылает все опубликованные сообщения в любую созданную очередь, которая соответствует Consumer.MyConsumer.VirtualTopic.MyTopic.
Пример Название темы:
имена Пример очереди:
- Consumer.ScoreBoardService.VirtualTopic.GameScores
- Consumer.BettingService. VirtualTopic.GameScore s
Ваш вопрос в настоящее время неясен, вам нужно будет предоставить более подробную информацию и, возможно, некоторые образцы кода, чтобы уточнить, что вы просите. – jtahlborn