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

🔫 Как не выстрелить себе в ногу: партиции в...

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

Кратко

Как не выстрелить себе в ногу: партиции в Kafka Выбор количества партиций - это как выбор фундамента для дома. Переделать потом почти...

Как не выстрелить себе в ногу: партиции в Kafka Выбор количества партиций - это как выбор фундамента для дома. Переделать потом почти невозможно: уменьшить количество партиций нельзя, а каждое увеличение влечёт за собой приостановку обработки, чтобы сделать ребалансировку. Так что, если промахнётесь, то система будет буксовать. Есть пять факторов, по которым нужно определять количество партиций:

Пропускная способность. Лучше не закладывать больше чем 50Мб/с на одну партицию. Если нужна бОльшая пропускная способность, то делайте больше партиций.

Упорядоченность. Порядок сообщений гарантируется только внутри одной партиции. Если у вас в ключах параметр, у которого всего пятьдесят возможных значений, то делать сто партиций бессмысленно. Поэтому лучше, конечно, такие параметры вообще не выносить в ключи, чтобы потом не помешать себе масштабироваться.

Количество консьюмеров. Если консьюмеров 20, то нельзя делать 10 партиций. Если в каждом консьюмере несколько потоков, то лучше взять за минимум количество потоков во всех консьюмерах.

Кратность брокерам и консьюмерам. Если 4 брокера и 10 партиций, то двое получат по 3, двое по 2. Перекос. Лучше сделать 12. Если partitions % consumers != 0, то один из консьюмеров будет отставать и тормозить всю группу.

Накладные расходы. Чем больше партиций, тем больше размер метаданных, а значит, больше время восстановления при падении и время ребалансировки. Поэтому не рекомендуется заводить больше 4 000 партиций на брокер и больше 200 000 париций на кластер.

Лучше один раз увидеть, чем сто раз прочитать: заходи в мой бесплатный тренажёр kafka, подгоняй настройки под свою систему и проверяй, какая конфигурация лучшая. @maximbelovmentor

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