Как рассчитать минимальное количество нод для отказоустойчивого кластера Kafka?

«Как рассчитать минимальное количество нод для отказоустойчивого кластера Kafka?» — вопрос из категории Брокеры сообщений, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Минимальное количество брокеров (нод) для отказоустойчивого кластера Kafka определяется по формуле:

*N = 2 RF - 1**

Где:

  • RF (Replication Factor) — фактор репликации топиков. Обычно равен 3 для обеспечения высокой доступности и устойчивости к сбоям.

Пример расчета:

int replicationFactor = 3;
int minNodes = 2 * replicationFactor - 1; // Результат: 5 брокеров

Объяснение формулы:

  • Кластер должен выдерживать отказ до RF - 1 нод без потери данных или доступности.
  • Для RF=3 кластер из 5 нод может пережить одновременный отказ 2 нод.
  • Формула гарантирует, что даже при отказе RF-1 нод, для каждой партиции останется как минимум одна синхронизированная реплика (ISR), способная стать лидером.

Рекомендация: Для production-среды с RF=3 оптимальным является кластер из 3 до 5 брокеров. 3 — это минимум для работы репликации, 5 — обеспечивает лучшую отказоустойчивость и балансировку нагрузки.