Перейти к содержимому
Опубликовано

Три кита отказоустойчивости в kafka

Автор
  • Имя
    Максим | Системный анализ
    Telegram

Кратко

Три кита отказоустойчивости в kafka Replication Factor (RF): сколько копий данных существует в кластере. Не может превышать количество брокеров в...

Три кита отказоустойчивости в kafka Replication Factor (RF): сколько копий данных существует в кластере. Не может превышать количество брокеров в кластере. ISR (In-Sync Replicas): какие из этих копий синхронны с лидером прямо сейчас. Для того, чтобы задать минимальное количество синхронизированных копий для продолжения работы, используется параметр min.insync.replicas. Acks: сколько подтверждений от реплик партиции ждёт продюсер, прежде чем считать запись успешной. Может быть 0, 1 или all. Важный момент: acks=all означает "все реплики в ISR", а не "все RF-реплики". Для настройки этих параметров нужно задать себе 3 вопроса: Все ли данные действительно нужно сохранить Если потеря данных допустима, можно поставить по минимуму: RF=2, min.insync.replicas = 1, acks = 1. Для логов и метрик вообще можно выставить acks = 0. Падение скольких брокеров должен пережить этот топик Пусть это будет N. Двигаемся дальше, эта цифра нам ещё пригодится. Должна ли система продолжить работать, или достаточно просто не потерять данные Если готовы встать на паузу: RF = N + 1 , min.insync.replicas = N + 1, acks = all. Если нужно продолжать работу: RF = 2N + 1 , min.insync.replicas = N + 1, acks = all. Да, аналитику необязательно знать такие формулы наизусть. Но эти три вопроса - основа для сбора НФТ в системах с kafka. А попробовать разные конфигурации этих параметров вы можете в моем kafka-тренажере. Настраивайте параметры "копий каждой партиции", "минимум синхронных копий" и "чего ждёт отправитель" и тестируйте

@maximbelovmentor

Максим | Системный анализ
349 подписчиков
95 постов
Как войти в IT через системный анализ и получить оффер от 200к+. Опыт Senior аналитика из топ-банков. Разборы, практика, собесы, техника мышления аналитика. Бесплатная консультация - в закрепе.