- Опубликовано
🔫 Как не выстрелить себе в ногу: партиции в...
- Автор
- Имя
- Максим | Системный анализ
- Telegram
- Максим | Системный анализ349 подписчиков95 постовКак войти в IT через системный анализ и получить оффер от 200к+. Опыт Senior аналитика из топ-банков. Разборы, практика, собесы, техника мышления аналитика. Бесплатная консультация - в закрепе.
Кратко
Как не выстрелить себе в ногу: партиции в Kafka Выбор количества партиций - это как выбор фундамента для дома. Переделать потом почти...
Как не выстрелить себе в ногу: партиции в Kafka
Выбор количества партиций - это как выбор фундамента для дома. Переделать потом почти невозможно: уменьшить количество партиций нельзя, а каждое увеличение влечёт за собой приостановку обработки, чтобы сделать ребалансировку. Так что, если промахнётесь, то система будет буксовать.
Есть пять факторов, по которым нужно определять количество партиций:
Пропускная способность.
Лучше не закладывать больше чем 50Мб/с на одну партицию. Если нужна бОльшая пропускная способность, то делайте больше партиций.
Упорядоченность.
Порядок сообщений гарантируется только внутри одной партиции. Если у вас в ключах параметр, у которого всего пятьдесят возможных значений, то делать сто партиций бессмысленно.
Поэтому лучше, конечно, такие параметры вообще не выносить в ключи, чтобы потом не помешать себе масштабироваться.
Количество консьюмеров.
Если консьюмеров 20, то нельзя делать 10 партиций. Если в каждом консьюмере несколько потоков, то лучше взять за минимум количество потоков во всех консьюмерах.
Кратность брокерам и консьюмерам.
Если 4 брокера и 10 партиций, то двое получат по 3, двое по 2. Перекос. Лучше сделать 12.
Если partitions % consumers != 0, то один из консьюмеров будет отставать и тормозить всю группу.
Накладные расходы.
Чем больше партиций, тем больше размер метаданных, а значит, больше время восстановления при падении и время ребалансировки. Поэтому не рекомендуется заводить больше 4 000 партиций на брокер и больше 200 000 париций на кластер.
Лучше один раз увидеть, чем сто раз прочитать: заходи в мой бесплатный тренажёр kafka, подгоняй настройки под свою систему и проверяй, какая конфигурация лучшая.
@maximbelovmentor






