Что такое множество синхронных реплик, как оно сжимается и почему без min.insync.replicas=2 репликация не защищает.
ISR (In-Sync Replicas) — множество реплик партиции, которые не отстали от лидера дальше допустимого. Лидер всегда в ISR. Фолловер выпадает из ISR, если перестал успевать за лидером или его брокер недоступен, и возвращается, когда догоняет.
ISR определяет две вещи. Первая — High Watermark: он равен минимальному концу лога среди реплик из ISR. Всё, что выше High Watermark, консьюмерам не отдаётся, потому что эти записи могут существовать только на лидере. Вторая — кто может стать лидером при отказе: контроллер выбирает нового лидера из ISR.
min.insync.replicas задаёт нижнюю границу: при скольких синхронных репликах брокер ещё соглашается принимать запись с acks=all. При значении 1 лидер вправе подтвердить запись в одиночку — и тогда acks=all не даёт никаких гарантий. При значении 2 и RF=3 система переживает потерю одной ноды.
В Kafka 4.1 к этому добавились Eligible Leader Replicas — реплики вне ISR, у которых тем не менее есть все подтверждённые данные. Контроллер выбирает лидера в порядке ISR → ELR → последний известный лидер. Вместе с ними работает строгое правило min ISR: пока синхронных реплик меньше min.insync.replicas, High Watermark не двигается, и читатели никогда не увидят данных, существующих в единственном экземпляре.
Что попадает в требования: replication factor, min.insync.replicas, значение unclean.leader.election.enable и явная формулировка компромисса — что происходит с приёмом данных, когда синхронных реплик становится меньше нормы.
Разобрать это в симуляторе Интерактивный сценарий: настраиваешь кластер, ломаешь его и смотришь, что происходитФолловер мог отстать из-за нагрузки, сетевой задержки или паузы GC. Это штатное поведение; тревожно, когда ISR стабильно меньше min.insync.replicas.
Разрешение сделать лидером реплику, у которой нет всех подтверждённых данных. Даёт доступность ценой тихой потери. По умолчанию выключено, и включать это осознанное решение.
Чтобы при потере всех синхронных реплик не выбирать между простоем партиции и unclean-выбором: реплика с полными подтверждёнными данными может стать лидером без потерь.