Может ли очередь подписаться (прослушать) на другую очередь в rabbit mq - PullRequest
0 голосов
/ 07 июня 2019

У нас есть 2 кролика.

мы публикуем в очередь A Broker1, может ли очередь B Broker2 подписываться непосредственно на очередь A, чтобы не было задержек, как в случае записи обработчика для нее (с использованием @rabbitListener), а затем публикации в другой очереди.

Мой вопрос заключается в том, может ли Broker2 напрямую подписаться на broker1 с любым обработчиком rabit или может ли broker2 (другая очередь) напрямую использовать данные очереди в broker1? Возможно ли это?

Если да, то как добиться этого через spring-amqp?

Примечание: два брокера RabbitMq в смысле двух разных серверов rabbitmq

Ответы [ 3 ]

0 голосов
/ 07 июня 2019

A queue не может использовать из другой очереди. Единицей работы в RabbitMQ является consumer. Существуют два способа решения вашей проблемы:

Решение 1 : Создайте кластер серверов RabbitMQ с обоими вашими серверами. Используйте разветвленный обмен для направления одного и того же сообщения в обе очереди.

Решение 2 : Создайте получателя, который использует очередь из очереди 1, и повторно поместите в очередь одно и то же сообщение как в очередь 1, так и в очередь 2.

Если вы хотите, чтобы сообщения присутствовали в обеих очередях, выполните решение 1 . Если вы хотите переместить сообщение (не копировать), выполните решение 2 .

Надеюсь, это поможет!

0 голосов
/ 28 июня 2019

У нас есть концепция объединения очередей, когда очереди передают сообщения в другие очереди.Основная цель федеративной очереди - сбалансировать нагрузку между брокерами RabbitMQ.Здесь потребители будут подключены к очереди в нисходящем направлении и будут получать сообщения из нее, когда очередь в нисходящем направлении пуста и когда потребитель пытается использовать сообщения из очередей в нисходящем направлении, сообщения из очереди в восходящем направлении будут передаваться в очередь в нисходящем направлении для удовлетворения потребностей потребителя.Здесь обратите внимание, что сообщения передаются в нисходящую очередь только по требованию, если потребитель не требует сообщений, то сообщения не будут переданы нисходящему.

Федерация имеет большие преимущества по сравнению с использованием кластеров.

0 голосов
/ 07 июня 2019
  • Вы не можете публиковать в очереди , вы можете публиковать только в exchange .
  • Очереди могут быть привязаны к обменам, но не к очередям внутри одного экземпляра RabbitMQ.
  • Чтобы переместить сообщения из очереди A в брокер 2, вам потребуется реализовать небольшое приложение, которое получает сообщения из очереди A и публикует их для обмена в брокере 2.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...