Выбор ответа Middle Kafka спрашивают часто обновлено
acks=all и min.insync.replicas
Вопрос
Топик с фактором репликации 3, min.insync.replicas=2, продюсер с acks=all. Два брокера из трёх упали. Что будет с записью в партицию, у которой в ISR остался только лидер?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Запись отклонят с ошибкой: в ISR меньше двух реплик, без избыточности Kafka не подтвердит. С acks=all запись подтверждается всеми репликами из ISR, а min.insync.replicas задаёт минимальный размер ISR для приёма записи.
Варианты ответа
- Запись пройдёт без репликации, а лидер догонит реплики, когда брокеры поднимутся
- Kafka подождёт и подтвердит запись, когда брокеры поднимутся, не возвращая ошибку
- Запись отклонят с ошибкой: в ISR меньше двух реплик, без избыточности Kafka не подтвердитправильный ответ
- Продюсер автоматически переключится на acks=1 и продолжит запись в лидера без ожидания
Разбор
С acks=all запись подтверждается всеми репликами из ISR, а min.insync.replicas задаёт минимальный размер ISR для приёма записи. При одной живой реплике запись отклоняется (NotEnoughReplicas), продюсер может повторять. Это выбор в пользу надёжности, а не доступности. Тихой записи без репликации не будет. Автоматического понижения acks нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.