Какое отличие между типами обменников Topic и Direct в RabbitMQ?

В RabbitMQ типы обменников (exchanges) Direct и Topic отличаются способом маршрутизации сообщений:

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

Что ответить на собеседовании

В RabbitMQ типы обменников (exchanges) Direct и Topic отличаются способом маршрутизации сообщений:

Подробный разбор

Ответ с пояснениями

В RabbitMQ типы обменников (exchanges) Direct и Topic отличаются способом маршрутизации сообщений:

  • Direct Exchange: маршрутизирует сообщения в очередь, если ключ маршрутизации (routing key) сообщения точно совпадает с ключом привязки (binding key) очереди.
  • Topic Exchange: поддерживает шаблоны с подстановочными символами (* для одного слова, # для нескольких слов), что позволяет гибко маршрутизировать сообщения по шаблонам ключей.

Пример:

  • Direct: сообщение с routing key "error" попадёт только в очередь, привязанную с ключом "error".
  • Topic: сообщение с routing key "logs.error.system" может попасть в очередь с binding key "logs.*.system" или "logs.#".

Таким образом, Topic более гибкий и подходит для сложной маршрутизации, а Direct — для точного совпадения ключей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее