Что такое ISR (in-sync replicas) в Kafka и какую роль он играет?
- Что такое in-sync replicas?
ISR — реплики партиции, которые не отстали от лидера дольше replica.lag.time.max.ms. Подтверждение acks=all ждёт ISR, а новым лидером может стать только реплика из ISR.
- Отставшая реплика выбывает из ISR, догнавшая — возвращается
- ISR из одного лидера — надёжность acks=all падает до acks=1
- Отсюда min.insync.replicas
А ещё Лидер всегда в ISR
Подробно
У партиции есть лидер и фолловеры. ISR — это лидер плюс те фолловеры, что успевают реплицировать его лог в пределах replica.lag.time.max.ms. Если фолловер отстаёт, его выкидывают из ISR. acks=all считает запись подтверждённой, когда её получили все реплики ISR. При отказе лидера контроллер по умолчанию выбирает нового лидера только из ISR — это гарантирует, что не потеряются подтверждённые сообщения.
Что хотят услышать
- Определение ISR и критерий отставания.
- Роль в подтверждении и выборе лидера.
Частые ошибки
- Путать ISR (реплики) с consumer group (потребители).
- Думать, что acks=all ждёт ВСЕ реплики, а не только ISR.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Список consumer-ов, читающих партицию в реальном времени
- ✓Реплики, догоняющие лидера; новым лидером может стать только реплика из ISR
- ✗Резервные брокеры, которые не хранят данные, а только координируют выборы лидера
- ✗Кэш последних сообщений в памяти брокера
Что спросят дальше
- Что делает min.insync.replicas?
- Чем опасен unclean leader election?
Разбор темы
- Kafka replication и отказоустойчивость
Leader/followers, ISR и lag, связка acks/min.insync, high watermark и видимость для consumer, выборы лидера и unclean election, rack awareness.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.