2015-10-17 5 views
0

У меня есть вопрос относительно JMS. Я проверял некоторые блоги, где показано, как сообщение для отправки сообщений может быть получено слушателем очереди. Это даже возможно, насколько я знаю, только клиент, подписавшийся на конкретную тему, может получить опубликованное сообщение.JMS тема получать в очереди слушателя

С уважением.

+0

Ваш вопрос в настоящее время неясен, вам нужно будет предоставить более подробную информацию и, возможно, некоторые образцы кода, чтобы уточнить, что вы просите. – jtahlborn

ответ

0

Итак, учитывая, что вы публикуете тему, вы хотите потреблять сообщения из очереди. Я предполагаю, что вы используете 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.

Пример Название темы:

  • VirtualTopic.GameScores

имена Пример очереди:

  • Consumer.ScoreBoardService.VirtualTopic.GameScores
  • Consumer.BettingService. VirtualTopic.GameScore s
+0

совершенно ясно сейчас. благодаря – paul

Смежные вопросы