Как выбрать номер раздела для темы кафки? - PullRequest
0 голосов
/ 10 мая 2018

У нас есть 3 узла кластера и 7 брокеров. Теперь мы должны создать тему и создать разделы для этой темы.

Но я не нашел никакой формулы, чтобы решить, сколько разделов я должен создать для этой темы. Скорость производителя составляет 5 тыс. Сообщений в секунду, а размер каждого сообщения - 130 байт.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Это зависит от требуемой пропускной способности, размера кластера, технических характеристик оборудования:

Существует четкий блог об этом, написанный Jun Rao из Confluent: Как выбрать количество тем / разделов вКластер Kafka?

Также это может быть полезно для понимания: Apache Kafka поддерживает 200K разделов на кластер

0 голосов
/ 10 мая 2018

Я не могу дать вам окончательный ответ, есть много шаблонов и ограничений, которые могут повлиять на ответ, но вот некоторые вещи, которые вы, возможно, захотите принять во внимание:

  • Единицей параллелизма является раздел, поэтому, если вы знаете среднее время обработки одного сообщения, вы сможете рассчитать количество разделов, необходимых для поддержки. Например, если для обработки каждого сообщения требуется 100 мс, а вы получаете 5 тыс. Секунд в секунду, вам потребуется как минимум 50 разделов. Добавьте еще процент, чтобы справиться с пиками и переменной производительностью инфраструктуры. Теория массового обслуживания может дать вам математику для расчета ваших потребностей параллелизма.

  • Насколько интенсивен ваш трафик и какие у вас ограничения по задержке? С учетом последнего пункта, если у вас также есть требования к задержке, вам, возможно, придется масштабировать свои разделы, чтобы справиться с максимальной скоростью трафика.

  • Если вы используете какие-либо шаблоны локальности данных или требует упорядочения сообщений, вам необходимо учитывать рост трафика в будущем. Например, вы имеете дело с данными о клиентах и ​​используете свой идентификатор клиента в качестве ключа раздела и зависите от того, что каждый клиент всегда перенаправляется в один и тот же раздел. Возможно, для получения событий или просто для того, чтобы каждое изменение применялось в правильном порядке. Что ж, если позже вы добавите новые разделы, чтобы справиться с более высокой частотой сообщений, то каждый клиент, скорее всего, будет теперь перенаправлен на другой раздел. Это может создать некоторые проблемы с гарантированным заказом сообщений, поскольку клиент существует в двух разделах. Итак, вы хотите создать достаточно разделов для будущего роста. Просто помните, что это легко масштабировать и для потребителей, но перегородки нуждаются в некотором планировании, так что будьте осторожны и будьте готовы к будущему.

  • Наличие тысяч разделов может увеличить общую задержку.

...