Sobes.tech
Назад к вопросам
Junior — Middle
82

Чем отличаются очереди и обменники в RabbitMQ и как они взаимодействуют?

Компании, где спрашивали
СБЕР Бизнес

Ответ от нейросети

sobes.tech AI

В RabbitMQ очереди (queues) — это структуры данных, в которых хранятся сообщения до тех пор, пока потребители их не заберут. Очередь гарантирует порядок доставки и хранит сообщения, если потребитель временно недоступен.

Обменники (exchanges) — это компоненты, которые принимают сообщения от производителей и направляют их в одну или несколько очередей согласно определённым правилам (binding). Обменник не хранит сообщения, а только маршрутизирует их.

Взаимодействие:

  1. Производитель отправляет сообщение в обменник.
  2. Обменник по заданным правилам (тип обменника и привязки) решает, в какую очередь отправить сообщение.
  3. Сообщение помещается в очередь и ждёт потребителя.

Типы обменников:

  • direct — маршрутизация по точному совпадению ключа.
  • fanout — рассылка во все связанные очереди.
  • topic — маршрутизация по шаблонам ключей.
  • headers — маршрутизация по заголовкам сообщений.

Пример: производитель отправляет сообщение в direct-обменник с ключом "task", обменник направляет сообщение в очередь, привязанную с ключом "task".