Sobes.tech
Back to questions
Junior — Middle
67

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

Answer from AI

sobes.tech AI

В 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 — для точного совпадения ключей.