Что такое Kafka rebalance и почему он опасен для обработки сообщений?
- Почему при ребалансе обработка останавливается?
Ребаланс — перераспределение партиций при входе или выходе участника группы. При eager-протоколе все отдают партиции и ждут нового назначения — обработка стоит; незакоммиченная работа повторится.
- Причины: деплой, автомасштабирование, долгая обработка (max.poll.interval.ms), потеря heartbeat
- Cooperative-sticky перераспределяет только нужные партиции, без общей остановки
- Static membership (group.instance.id) переживает перезапуск без ребаланса
А ещё Коммитить обработанное в onPartitionsRevoked
Подробно
Он случается при добавлении/падении consumer, timeout heartbeat, изменении partitions. Во время rebalance обработка временно останавливается, partitions revoked у consumers; обработчик rebalance должен зафиксировать прогресс по отозванным partitions и корректно остановить in-flight работу.
Что хотят услышать
- Что такое ребаланс и что его вызывает.
- Почему опасен: пауза и повторная обработка.
- Как смягчить: cooperative, static membership, коммит при отзыве.
Частые ошибки
- Долго обрабатывать batch и превышать max.poll.interval.ms.
- Не обрабатывать partition revoke callbacks.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Перенос лидеров партиций между брокерами; потребители его не замечают
- ✗Перераспределение сообщений между партициями топика по новому ключу, из-за которого теряется порядок внутри партиции
- ✓Перераспределение партиций в группе; при eager-протоколе обработка останавливается, а незакоммиченное повторится
- ✗Сжатие журнала, во время которого удаляются старые версии ключей
Что спросят дальше
- Что делает heartbeat thread?
- Что такое cooperative rebalance?
Разбор темы
- Kafka в эксплуатации
Consumer lag и его причины, ребаланс и безопасный commit, poison-сообщения, ZooKeeper → KRaft, schema evolution, изменения partitions и ключевые метрики.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.