Этот вопрос проверяет понимание механизмов Kafka для поддержания доступности и устойчивости к сбоям.
Kafka создаёт кластер из брокеров, где каждая партиция имеет лидера и реплики. Реплики хранят идентичные данные и синхронизируются с лидером. При падении лидера одна из синхронных реплик автоматически становится новым лидером, сохраняя доступность.
Кластеризация:
- Несколько брокеров объединяются в кластер.
- Метаданные и распределение партиций управляются Zookeeper или встроенным контроллером.
Репликация:
- Для каждой партиции задаётся фактор репликации (replication.factor).
- Одна партиция–лидер записывает данные, другие реплики синхронно дублируют их.
ISR (In-Sync Replicas):
- Реплики, поддерживающие актуальные данные, входят в список ISR.
- Только ISR могут претендовать на роль лидера при сбое.
Автоматическое переключение:
- При падении брокера-лидера контроллер назначает новым лидером одну из ISR.
- Консюмеры перенастраиваются на нового лидера.
Когда применять:
- Для систем с высокими требованиями к доступности и хранению критичных данных.
- Настраивать replication.factor ≥ 2 и min.insync.replicas ≥ 2.