Компоненты:
1️⃣ Publisher (Producer) — отправляет сообщения в Exchange. Не знает о Consumer, указывает Routing Key.
2️⃣ Subscriber (Consumer) — читает сообщения из очереди. Поддерживает Auto/Manual ACK.
3️⃣ Exchange — маршрутизирует сообщения в очереди по правилам. 4 типа: Direct, Fanout, Topic, Headers.
🔹Fanout — рассылает сообщение ВСЕМ привязанным очередям. Игнорирует Routing Key.
🔹Direct — точное совпадение Routing Key и Binding Key.
🔹Topic — маршрутизация по паттерну: * (одно слово), (ноль или более слов).
🔹 Headers — фильтрация по заголовкам сообщения. Использует x-match: all/any.
4️⃣ Queue — буфер FIFO. Хранит сообщения до обработки. Параметры: Durable, Exclusive, Auto-delete.
5️⃣ Push/Pull — методы доставки: брокер сам шлёт (Push) или Consumer запрашивает (Pull).
6️⃣ ACK — подтверждение обработки. autoAck=false + Manual ACK = гарантия доставки.
7️⃣ Bindings — связь между Exchange и Queue. Определяет правила направления сообщений через Binding Key (Определяет, какие сообщения (с какими routing keys) должна получать эта очередь)
Routing Key— метка-строка, которую Publisher добавляет к сообщению. Exchange использует её для маршрутизации.
8️⃣ Message (сообщение) в RabbitMQ — это единица данных, которая передается от Producer (издателя) к Consumer (подписчику) через брокер сообщений.
Для работы:
• Проверять доставку сообщений и порядок обработки
• Имитировать сбои брокера/потребителя
• Тестировать повторную доставку (NACK/Reject)
• Отличать RabbitMQ от Kafka на собеседовании
✍️ Работал с RabbitMQ? Какой компонент вызвал больше всего вопросов? Пиши в комментариях! 👇
Вообще планирую сделать курс с практикой по брокерам сообщений на Stepik, ставь огонь 🔥, если актуально.
Post #5042
1.86K





- 🔥 13
- ❤ 10
- ❤🔥 2