@topuserman

RabbitMQ: что такое exchange, и где его место?

Обычная схема приложения на rabbitmq выглядит так:

1. Продюсер отправляет сообщения в exchange.
2. В зависимости от типа Exchange`а сообщение маршрутизируется в очередь.
3. Консюмер слушает очередь, читает сообщение, и подтверждает, что сообщение было получено.

Мне непонятен первый слой - отправка сообщения exchange.

Что из себя представляет exchange ?
Обычно, во всех примерах и документациях, exchange - это всего всего лишь несколько дополнительных строчек кода в коде продюсера.
Нужно ли выносить в отдельный файл exchange, и стучаться к нему при отправке сообщения, или можно оставить в коде продюсера ? Как делается на боевых проектах ?

Где можно посмотреть реальные примеры ?
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
@EvgeniiR
https://github.com/EvgeniiR
Exchange это просто посредник который решает как роутить сообщения в очереди, тем самым отвязывая немного продюсер от знания как и кем будут сообщения обрабатываться.

Нужно ли выносить в отдельный файл exchange, и стучаться к нему при отправке сообщения, или можно оставить в коде продюсера ?

Что значит "выносить exchange в отдельный файл"? Exchange он в брокере.

Продюсеру нужно лишь имя exchange знать чтобы сообщения туда постить, и Routing Key при необходимости.
Создавать exchange лучше конечно не в продюсере.

Чтобы перестраховаться и убедиться что exchange существует можно, конечно, отправить сообщение с объявлением exchange с флагом passive( https://www.rabbitmq.com/amqp-0-9-1-reference.html... )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы