Встречается на собеседованиях • сегодня

Какие знаешь типы обменников в RabbitMQ

RabbitMQ поддерживает несколько типов обменников (exchanges), которые определяют, как сообщения будут распределяться между очередями:

  1. Direct – сообщение отправляется в очередь с точно совпадающим ключом маршрутизации (routing key). Пример:
python
channel.exchange_declare(exchange='direct_logs', exchange_type='direct')
channel.basic_publish(exchange='direct_logs', routing_key='error', body='Error message')
  1. Fanout – сообщение рассылается во все связанные очереди, игнорируя routing key. Полезно для широковещательных рассылок.

  2. Topic – маршрутизация по шаблону. Routing key может содержать подстановочные символы (* – одно слово, # – несколько слов). Пример:

python
channel.exchange_declare(exchange='topic_logs', exchange_type='topic')
channel.basic_publish(exchange='topic_logs', routing_key='system.error', body='Error')
  1. Headers – маршрутизация на основе заголовков сообщения (атрибутов headers), а не routing key. Сравнение происходит по заданным критериям (x-match: all/any).

  2. Default (Nameless) – встроенный обменник, куда попадают сообщения без указанного exchange. Связывает очереди по имени очереди как routing key.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы