Проверяет знание поведения модели «один‑ко‑многим» в очередях RabbitMQ.
Да, несколько consumer-ов могут одновременно читать из одной очереди. RabbitMQ по умолчанию будет распределять сообщения между активными потребителями по принципу round‑robin (или с учётом prefetch), что позволяет балансировать нагрузку. Каждый конкретный message в итоге будет доставлен и обработан ровно одним consumer-ом.
Концепция конкурирующих потребителей:
Все подписанные consumer-ы конкурируют за сообщения в одной очереди.
Балансировка нагрузки:
По умолчанию используется простой round‑robin.
Параметр basic.qos(prefetch_count=n) позволяет ограничить число необработанных сообщений на одного consumer-а.
Гарантия единственной обработки:
После доставки одному consumer-у сообщение скрывается от других до ack.
Если consumer упадёт без ack, сообщение вернётся в очередь и будет переотдано.
Когда использовать:
Фоновые воркеры для обработки задач.
Параллельная обработка больших объёмов данных.
Обеспечение отказоустойчивости: если один потребитель недоступен, другие продолжат работу.