Встречается на собеседованиях • сегодня

Какие знаешь механизмы обеспечения сохранности данных в случае отказа одного из брокеров в Kafka

В Kafka есть несколько механизмов для обеспечения сохранности данных при отказе брокера:

  1. Репликация партиций – каждая партиция имеет несколько реплик (по умолчанию 3). Одна из них — лидер, остальные — синхронизированные фолловеры. Если лидер падает, один из фолловеров становится новым лидером.

  2. ISR (In-Sync Replicas) – список реплик, которые синхронизированы с лидером. Если реплика отстаёт, она исключается из ISR, что гарантирует, что новый лидер будет актуальным.

  1. Acks (подтверждения) – продюсер может требовать подтверждение записи от:

    • acks=0 – не ждёт подтверждения (риск потери данных).
    • acks=1 – ждёт подтверждения от лидера (риск потери при падении лидера).
    • acks=all – ждёт подтверждения от всех реплик ISR (максимальная надёжность).
  2. Минимальное количество реплик (min.insync.replicas) – если число синхронизированных реплик меньше этого значения, продюсер получит ошибку.

Пример конфигурации для надёжности:

python
from kafka import KafkaProducer

producer = KafkaProducer(
    bootstrap_servers='kafka:9092',
    acks='all',  # Ждём подтверждения от всех реплик
    retries=3    # Повторяем отправку при ошибках
)

Также важно настраивать unclean.leader.election.enable=false (запрет выбора несинхронизированного лидера) и мониторить лаг реплик.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

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

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы