Что такое репликационный фактор в Kafka и как работает min.insync.replicas?
Answer from AI
sobes.tech AI
Репликационный фактор (replication factor) в Kafka — это количество копий (реплик) каждой партиции топика, которые хранятся на разных брокерах для обеспечения отказоустойчивости и доступности данных. Например, если replication factor = 3, то каждая партиция будет храниться на трёх брокерах.
Параметр min.insync.replicas определяет минимальное число реплик, которые должны подтвердить запись (быть "in-sync" — синхронизированными с лидером), чтобы продюсер считал запись успешной при использовании уровня подтверждения acks=all. Это гарантирует, что данные записаны не только на лидере, но и на достаточном числе реплик, что повышает надежность.
Если количество доступных in-sync реплик меньше min.insync.replicas, то при попытке записи с acks=all продюсер получит ошибку, что предотвращает потерю данных при сбоях.
Пример:
- replication.factor = 3
- min.insync.replicas = 2
- Продюсер пишет с acks=all
Запись будет успешной, если как минимум 2 реплики подтвердят запись. Если одна из реплик упала и осталось только 1 in-sync реплика, запись будет отклонена.