Оптимизация Kafka - Сколько партиций необходимо?

Apache Kafka - это распределенная система, работающая в кластере, каждый из узлов которого называется брокером. Топики Kafka разделяются и реплицируются между брокерами в течение всего времени выполнения.

Почему партиции важны?

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

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

Другими словами, чем больше распараллеливание, тем выше пропускная способность.

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

Лучше ли больше партиций?

Вы не обязательно хотите использовать больше партиций, чем необходимо, поскольку увеличение количества партиций одновременно увеличивает количество открытых файлов сервера и приводит к увеличению задержки репликации.

Для большинства реализаций следует придерживаться эмпирического правила: 10 партиций на топик и 10 000 партиций на кластер Kafka. Превышение этого количества может потребовать дополнительного мониторинга и оптимизации.

Расчет потребности в партициях Kafka

Вот расчет, который мы используем для оптимизации количества партиций для реализации Kafka.

Консервативно можно оценить, что одна партиция для одного топик Kafka работает со скоростью 10 МБ/с.

В качестве примера, если ваша желаемая пропускная способность составляет 5 ТБ в день. Эта цифра составляет около 58 МБ/с. Используя оценку 10 МБ/с на партицию, в данном примере реализации потребуется 6 партиций.

В приведенном примере количество партиций задается с помощью следующей команды:

Что такое коэффициент репликации?

По умолчанию коэффициент репликации установлен на 3. В то время как партиции отражают горизонтальное масштабирование уникальной информации, факторы репликации относятся к резервным копиям. При коэффициенте репликации 3 в приведенном выше примере всего имеется 18 партиций, причем 6 партиций являются оригиналами, а затем по 2 копии каждого из этих уникальных партиций.

Как и в случае со всеми собранными данными, вы хотите быть уверены, что информация не будет потеряна в случае сбоя. Создание реплицированных партиций является важным компонентом для предотвращения потери данных.

Проведите тестирование партиций

Начиная с оценки партиций, лучше всего протестировать пропускную способность партиций. Настройка мониторинга Kafka позволит вам легко выполнить эти тесты.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий