Какие знаешь механизмы обеспечения сохранности данных в случае отказа одного из брокеров в Kafka
В Kafka есть несколько механизмов для обеспечения сохранности данных при отказе брокера:
-
Репликация партиций – каждая партиция имеет несколько реплик (по умолчанию 3). Одна из них — лидер, остальные — синхронизированные фолловеры. Если лидер падает, один из фолловеров становится новым лидером.
-
ISR (In-Sync Replicas) – список реплик, которые синхронизированы с лидером. Если реплика отстаёт, она исключается из ISR, что гарантирует, что новый лидер будет актуальным.
-
Acks (подтверждения) – продюсер может требовать подтверждение записи от:
acks=0– не ждёт подтверждения (риск потери данных).acks=1– ждёт подтверждения от лидера (риск потери при падении лидера).acks=all– ждёт подтверждения от всех реплик ISR (максимальная надёжность).
-
Минимальное количество реплик (
min.insync.replicas) – если число синхронизированных реплик меньше этого значения, продюсер получит ошибку.
Пример конфигурации для надёжности:
from kafka import KafkaProducer
producer = KafkaProducer(
bootstrap_servers='kafka:9092',
acks='all', # Ждём подтверждения от всех реплик
retries=3 # Повторяем отправку при ошибках
)Также важно настраивать unclean.leader.election.enable=false (запрет выбора несинхронизированного лидера) и мониторить лаг реплик.

офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру