Когда использовать какую биржу в RabbitMQ? - PullRequest
1 голос
/ 04 февраля 2020

Я прочитал так много статей об обменах в RabbitMQ. Но я не смог найти ни одной полезной статьи, которая объясняет случаи использования каждого обмена. все, что они говорят, это

Direct Exchange - ключ привязки и ключ маршрутизации должны совпадать.

Topi c Exchange - ключ маршрутизации должен соответствует шаблону маршрутизации ключа привязки.

Fanout Exchange - Все очереди, которые связаны с этим конкретным обменом, получат сообщение.

Обмен заголовками - заголовки должны соответствовать ключу.

Может ли кто-нибудь подробно объяснить каждый обмен и примеры его использования?

1 Ответ

1 голос
/ 05 февраля 2020

Что ж, выбор типа обмена для использования в значительной степени зависит от вашего варианта использования, и вы сами выбираете тип обмена, который подходит вам лучше всего.

Вот несколько примеров:

  1. Допустим, вы хотите трансляцию (у вас есть несколько экземпляров приложений, которые должны получать сообщение). Например, что-то происходит в системе (ресурс становится доступным, кеш должен быть признан недействительным, вы называете его), и вы хотите, чтобы все экземпляры знали об этом. Тогда вашей первой ставкой будет обмен разветвления.

  2. Другой пример. Вы хотите unicast : отправить сообщение, и у вас есть несколько потребителей, но вы хотите, чтобы только один потребитель получил сообщение и попытался его обработать. В этом случае вы не можете использовать разветвленный обмен, и вы выберете другой тип обмена (например, прямой обмен).

В целом, я верю Вам должно быть интересно прочитать эту статью , которая описывает различные концепции довольно богатого протокола amqp и предоставляет примеры вариантов использования для различных типов обменов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...