Back to questions
Junior — Middle
81
Чем отличаются очереди и обменники в RabbitMQ и как они взаимодействуют?
Companies where asked
СБЕР Бизнес
Answer from AI
sobes.tech AI
В RabbitMQ очереди (queues) — это структуры данных, в которых хранятся сообщения до тех пор, пока потребители их не заберут. Очередь гарантирует порядок доставки и хранит сообщения, если потребитель временно недоступен.
Обменники (exchanges) — это компоненты, которые принимают сообщения от производителей и направляют их в одну или несколько очередей согласно определённым правилам (binding). Обменник не хранит сообщения, а только маршрутизирует их.
Взаимодействие:
- Производитель отправляет сообщение в обменник.
- Обменник по заданным правилам (тип обменника и привязки) решает, в какую очередь отправить сообщение.
- Сообщение помещается в очередь и ждёт потребителя.
Типы обменников:
- direct — маршрутизация по точному совпадению ключа.
- fanout — рассылка во все связанные очереди.
- topic — маршрутизация по шаблонам ключей.
- headers — маршрутизация по заголовкам сообщений.
Пример: производитель отправляет сообщение в direct-обменник с ключом "task", обменник направляет сообщение в очередь, привязанную с ключом "task".