Sobes.tech
Junior — Middle
74

Могли бы вы объяснить, что такое Topic в системе обмена сообщениями RabbitMQ?

Ответ от нейросети

sobes.tech AI

В RabbitMQ "Topic" — это тип обменника (exchange), который маршрутизирует сообщения на очереди на основе шаблонов ключей маршрутизации (routing keys).

Особенности Topic Exchange:

  • Ключ маршрутизации — строка, состоящая из слов, разделённых точками, например: "user.created" или "order.paid.us".
  • Очереди подписываются на шаблоны с использованием специальных символов:
    • * (звёздочка) заменяет ровно одно слово.
    • # (решётка) заменяет ноль или более слов.

Пример:

  • Очередь с binding key user.* получит сообщения с routing key user.created или user.deleted, но не user.created.email.
  • Очередь с binding key order.# получит сообщения с order.paid, order.shipped.us, order.cancelled.refund и т.д.

Таким образом, Topic Exchange позволяет гибко фильтровать и направлять сообщения по сложным шаблонам, что удобно для систем с разнообразными событиями и подписчиками.