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

Какие обменники использовал в 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 – сообщение рассылается во все связанные очереди (broadcast).
    Пример:

    python
    channel.exchange_declare(exchange='logs', exchange_type='fanout')
    channel.basic_publish(exchange='logs', routing_key='', body='Broadcast message')
  2. Topic – маршрутизация по шаблону (wildcards: * – одно слово, # – несколько).
    Пример:

    python
    channel.exchange_declare(exchange='topic_logs', exchange_type='topic')
    channel.basic_publish(exchange='topic_logs', routing_key='system.error', body='Topic message')
  3. Headers – маршрутизация по заголовкам сообщения (а не по routing key).
    Пример:

    python
    args = {'x-match': 'all', 'severity': 'error'}
    channel.exchange_declare(exchange='headers_logs', exchange_type='headers')
    channel.basic_publish(exchange='headers_logs', routing_key='', body='Headers message', properties=headers)

Также есть Default exchange (пустое имя ""), куда сообщения попадают напрямую в очередь, указанную в routing_key.

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

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

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

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