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

Что такое подписчики в RabbitMQ

Подписчики (consumers) в RabbitMQ — это клиенты, которые получают и обрабатывают сообщения из очередей. Они подключаются к брокеру, объявляют очередь и начинают "слушать" её, ожидая новые сообщения.

Ключевые особенности:

  • Подписчик может быть один или несколько (конкурирующие consumers).
  • Сообщение удаляется из очереди только после подтверждения (acknowledgment).
  • Можно настраивать QoS (quality of service), ограничивая количество неподтверждённых сообщений.

Пример кода (Python с библиотекой pika):

python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):
    print(f"Получено сообщение: {body.decode()}")
    ch.basic_ack(delivery_tag=method.delivery_tag)  # Подтверждение обработки

channel.basic_consume(queue='hello', on_message_callback=callback)
channel.start_consuming()

Нюансы:

  • Если подписчик "умирает" без ack, сообщение вернётся в очередь (если не настроено auto_ack=True).
  • Подписчики могут работать в режиме round-robin или fair dispatch (с настройкой prefetch_count).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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