Выбор ответа Senior Kafka в Spring обновлено
Долгая обработка пачки
Вопрос
Слушатель обрабатывает пачку 500 сообщений около 10 минут. Что произойдёт при настройках по умолчанию?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Превышен max.poll.interval.ms: ребалансировка и повторная доставка. Если между вызовами poll проходит больше max.poll.interval.ms, брокер считает потребителя зависшим и отдаёт его партиции другим.
Варианты ответа
- Превышен max.poll.interval.ms: ребалансировка и повторная доставкаправильный ответ
- Ничего: Kafka ждёт обработку пачки сколько угодно долго
- Kafka удалит необработанные сообщения пачки по таймауту
- Потребитель параллельно получит следующую пачку сообщений и начнёт её
Разбор
Если между вызовами poll проходит больше max.poll.interval.ms, брокер считает потребителя зависшим и отдаёт его партиции другим. Offset не закоммичен, поэтому сообщения обработают снова, возможно параллельно с ещё работающим старым. Лечат уменьшением max.poll.records, ускорением обработки или увеличением интервала. Сообщения не удаляются.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.