Как избежать увеличения входного трафика для брокеров Kafka при использовании пользовательского разделителя?

Чтобы сгладить трафик между всеми разделами Kafka, я попытался создать собственный разделитель (расширение kafka.producer.Partitioner) для моих производителей, чтобы заменить разделитель по умолчанию, который изменяет разделы каждые 10 минут.

Мой разделитель использует простой алгоритм циклического перебора для переключения с одного раздела на другой каждые 200 сообщений. Так как производители настроены с batch.num.messages=200 и provider.type = async, трафик должен переходить из одного раздела в другой каждые 200 сообщений, то есть для запроса каждого производителя. Насколько я понимаю, это не должно изменять входной трафик брокеров, учитывая количество запросов.

Но после некоторых тестов кажется, что количество запросов было умножено на 2 при использовании этого пользовательского разделителя.

Почему у нас это увеличение? Есть ли способ решить эту проблему или хотя бы ограничить увеличение трафика?

Спасибо за вашу помощь.

NB: я использую Kafka 0.8.2-beta, производители написаны на scala 2.10

0 ответов

Другие вопросы по тегам