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