Как обеспечить сохранность данных в Kafka?

Ответ

replication.factor=3 (каждая партиция на 3 брокерах). min.insync.replicas=2 (минимум 2 реплики подтверждают). acks=all (producer ждёт подтверждения от всех ISR). unclean.leader.election.enable=false, чтобы отставшая реплика не стала лидером и не потерялись неотреплицированные сообщения.

Разбор: Гарантия сохранности строится из трёх частей: фактор репликации (3), min.insync.replicas (2) и acks=all, чтобы продюсер дождался подтверждения от всех ISR. acks=1 подтверждает запись до её реплицирования, поэтому падение лидера теряет данные; при RF=2 и min.insync=2 потеря одного брокера блокирует запись; а unclean.leader.election=true как раз разрешает выбрать отставшую реплику и теряет неотреплицированные сообщения, поэтому его выключают.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться