RabbitMQ точка-точка или паб-саб - PullRequest
0 голосов
/ 24 апреля 2019

RabbitMQ - двухточечный или паб-саб?Или оба в зависимости от параметров конфигурации?

Я смотрел на конфигурации, и все они, кажется, поддерживают модель «точка-точка», а не pub-sub.т.е. сообщение удаляется из очереди после использования и недоступно для второго потребителя.

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Если вы хотите использовать RabbitMQ в качестве pub-sub, то есть сообщение не удаляется первым потребителем и может потребляться многими абонентов. Как бы вы сделали фигуру RabbitMQ?

Используйте обмен разветвления. Каждый потребитель объявляет свою собственную исключительную очередь, связанную с этим обменом. Когда сообщение публикуется на бирже, оно направляется на все очереди, связанные с ним.

Пожалуйста, прочитайте документацию и руководства RabbitMQ, в которых объясняются все эти концепции.


ПРИМЕЧАНИЕ: команда RabbitMQ контролирует список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

1 голос
/ 24 апреля 2019

Концептуально, RabbitMQ - это и точка-точка, и паб-саб. Вы можете зарегистрировать приложение для прослушивания в теме обмена RabbitMQ и получать все сообщения, опубликованные в этой теме. Так что это явно «паб-саб». Какую бы архитектуру приложения вы не имели в виду, вы можете использовать концепцию pub-sub для ее реализации.

Однако, как и IBM MQ, RabbitMQ начинался как «система массового обслуживания» (обратите внимание на MQ). Таким образом, чтобы реализовать pub-sub, они просто создали pub-sub поверх системы очередей. Это работает, но может показаться странным с точки зрения конфигурации (например, зачем вам вообще нужен обмен) и может быть не столь эффективным, как система обмена сообщениями, которая началась с pub-sub в ее ДНК.

Если вы хотите использовать только pub-sub и иметь сотни потребителей, возможно, есть лучший выбор, например, системы обмена сообщениями, использующие многоадресную передачу UDP для распространения данных.

...