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

Как min.insync.replicas работает вместе с acks=all?

SeniorРепликация KafkaKafka
Ещё спрашивают так:
  • Как гарантировать, что запись есть хотя бы на двух брокерах?
Коротко

min.insync.replicas — минимум реплик в ISR, при котором брокер принимает запись с acks=all. Если синхронных реплик меньше — продюсер получает ошибку NotEnoughReplicas.

  • Стандарт: replication.factor=3, min.insync.replicas=2 — переживает отказ одного брокера без потери и без остановки записи
  • min.insync.replicas=3 при RF=3 — отказ одного брокера останавливает запись
  • Влияет только на продюсеров с acks=all

А ещё Лучше отказ записи, чем подтверждение с одной копией

Подробно

acks=all сам по себе означает «дождаться всех реплик в ISR», но если ISR схлопнулся до одной реплики (лидера), то acks=all формально выполняется и при потере этой реплики данные пропадут. min.insync.replicas (например, 2) задаёт нижнюю границу: при acks=all, если в ISR меньше этого числа, брокер отклоняет запись (NotEnoughReplicas), и продюсер узнаёт о проблеме, а не теряет данные тихо. Классическая надёжная связка: replication.factor=3, min.insync.replicas=2, acks=all — переживает отказ одной реплики и продолжает принимать запись.

Что хотят услышать

  • Смысл параметра и связь с acks=all.
  • Типичная конфигурация и её отказоустойчивость.
  • Компромисс доступности записи и надёжности.

Частые ошибки

  • Ставить min.insync.replicas=replication.factor — кластер теряет запись при отказе любой одной реплики.
  • Считать, что acks=all без min.insync.replicas достаточно для надёжности.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Это таймаут ожидания подтверждения от лидера
  • ✗Число consumer-ов, которые должны прочитать сообщение до commit
  • ✗Оно отключает репликацию, если реплик слишком много
  • ✓Минимум реплик в ISR для записи с acks=all; если их меньше — producer получит ошибку

Что спросят дальше

  • Почему min.insync.replicas=RF — плохая идея?
  • Что вернёт продюсер при недоборе ISR?

Разбор темы

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

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

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

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

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