Вопрос с собеседования · Брокеры сообщений

Что такое ISR (in-sync replicas) в Kafka и какую роль он играет?

MiddleРепликация KafkaKafka
Ещё спрашивают так:
  • Что такое 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?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования