Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про RabbitMQ: rabbitmq, message broker, exchange

Какие есть обменники в RabbitMQ

Этот вопрос проверяет знание типов обменников (exchanges) в RabbitMQ, которые определяют, как сообщения маршрутизируются в очереди.

Короткий ответ

RabbitMQ использует обменники для получения сообщений от продюсеров и последующей их маршрутизации в очереди. Основные типы: Direct (отправляет в очередь с совпадающим ключом маршрутизации), Fanout (отправляет во все связанные очереди), Topic (отправляет в очереди, чей ключ совпадает с шаблоном) и Headers (маршрутизация на основе заголовков сообщения, а не ключа).

Длинный ответ

Обменник (Exchange) — это сущность, получающая сообщения от продюсеров и решающая, куда их направить. Привязка (Binding) связывает обменник с очередью с помощью ключа маршрутизации (routing key).

Основные типы обменников:

  1. Direct:

    • Принцип работы: Сообщение отправляется в очереди, ключ привязки которых точно совпадает с ключом маршрутизации сообщения.

    • Использование: Точечная отправка сообщений, когда каждое сообщение предназначено для конкретной задачи (например, обработка заказов).

  2. Fanout:

    • Принцип работы: Сообщение рассылается во все очереди, привязанные к данному обменнику. Ключ маршрутизации игнорируется.

    • Использование: Широковещательные уведомления, например, рассылка обновлений статуса всем подписчикам.

  3. Topic:

    • Принцип работы: Сообщение отправляется в очереди, ключ привязки которых совпадает с шаблоном. Ключи используют символы * (заменяет одно слово) и # (заменяет ноль или несколько слов).

    • Использование: Сложные сценарии маршрутизации, например, подписка на уведомления по категориям (logs.error, user.registered).

  4. Headers:

    • Принцип работы: Маршрутизация происходит на основе заголовков сообщения (x-match: all/any), а не ключа маршрутизации.

    • Использование: Более сложные критерии маршрутизации, где ключ маршрутизации неудобен.

Вывод: Выбор типа обменника зависит от логики маршрутизации сообщений в вашем приложении. Direct — для точной адресации, Fanout — для широковещания, Topic — для гибкой маршрутизации по шаблонам.

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    4

Навыки

  • RabbitMQ

    RabbitMQ

Ключевые слова

#rabbitmq

#message broker

#exchange

Подпишись на Node.js Developer в телеграм

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.