Выбор ответа Senior Kafka обновлено

Бесконечная ребалансировка

Вопрос

Консьюмер обрабатывает пачку сообщений по 10 минут (тяжёлые запросы к API), группа постоянно ребалансируется, lag растёт. Что вероятнее всего происходит?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Время между poll превышает max.poll.interval.ms, и консьюмера выкидывают из группы. Если консьюмер не вызывает poll дольше max.poll.interval.ms (по умолчанию 5 минут), координатор исключает его и запускает ребалансировку; его оффсеты не закоммичены, и пачку обрабатывает кто-то другой, и так по кругу.

Варианты ответа

  1. В топике закончилось место, и брокер замедляет выдачу сообщений консьюмерам
  2. Брокер перегружен репликацией и не успевает отвечать на heartbeat консьюмеров группы
  3. Ключи сообщений слишком длинные, и десериализация пачки занимает минуты
  4. Время между poll превышает max.poll.interval.ms, и консьюмера выкидывают из группыправильный ответ

Разбор

Если консьюмер не вызывает poll дольше max.poll.interval.ms (по умолчанию 5 минут), координатор исключает его и запускает ребалансировку; его оффсеты не закоммичены, и пачку обрабатывает кто-то другой, и так по кругу. Лечится меньшим max.poll.records, асинхронной обработкой с управлением паузой партиций или увеличением интервала. Место на диске, репликация и длина ключей такой картины не дают.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.