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

В какой ситуации сообщение брокера может продублироваться

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

  1. Повторная отправка при таймауте - если продюсер не получил подтверждение (ack) от брокера в течение таймаута, он может отправить сообщение повторно.

  2. Повторная обработка консьюмером - если консьюмер обработал сообщение, но не отправил подтверждение (например, из-за сбоя), брокер может повторно доставить это сообщение другому консьюмеру.

  1. Идемпотентность не настроена - в Kafka при включенной опции enable.idempotence=false продюсер может отправить дубликаты.

Пример для Kafka Producer:

python
from kafka import KafkaProducer

producer = KafkaProducer(
    bootstrap_servers=['localhost:9092'],
    enable_idempotence=True  # предотвращает дубликаты
)

producer.send('topic', b'message')

Для предотвращения дубликатов:

  • Включайте идемпотентность продюсера
  • Используйте механизм подтверждений (acknowledgments)
  • Реализуйте дедупликацию на стороне консьюмера (например, по message_id)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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