Ответ
Минимальное количество брокеров (нод) для отказоустойчивого кластера 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 — обеспечивает лучшую отказоустойчивость и балансировку нагрузки.