Встречается на собеседованиях • сегодня
Могут ли несколько консьюмер читать одну очередь в RabbitMQ
Да, несколько консьюмеров могут читать одну очередь в RabbitMQ. Это одна из ключевых возможностей брокера сообщений.
Как это работает:
- RabbitMQ по умолчанию использует round-robin балансировку между консьюмерами.
- Каждое сообщение доставляется только одному консьюмеру (если не включен режим
fanout).
Пример:
python
import pika
def callback(ch, method, properties, body):
print(f"Consumer received: {body}")
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='test_queue')
# Первый консьюмер
channel.basic_consume(queue='test_queue', on_message_callback=callback, auto_ack=True)
# Второй консьюмер (в другом процессе/потоке)
channel.basic_consume(queue='test_queue', on_message_callback=callback, auto_ack=True)
channel.start_consuming()Нюансы:
- Для равномерного распределения используйте
channel.basic_qos(prefetch_count=1). - Если консьюмер падает, сообщение может быть возвращено в очередь (зависит от
auto_ack).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы