Kafka Тема Лаг продолжает постепенно увеличиваться, когда размер сообщения огромен - PullRequest
1 голос
/ 22 марта 2019

Я использую API процессора Kafka Streams для создания приложения Kafka Streams для получения сообщений из темы Kafka. У меня есть два пользовательских приложения с одинаковой конфигурацией Kafka Streams. Разница только в размере сообщения. Первый имеет сообщения с 2000 символов (3 КБ), а второй имеет сообщения с 34000 символов (60 КБ).

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

Параметры конфигурации My Stream указаны ниже,

application.id=Application1
default.key.serde=org.apache.kafka.common.serialization.Serdes$StringSerde
default.value.serde=org.apache.kafka.common.serialization.Serdes$StringSerde
num.stream.threads=1
commit.interval.ms=10
topology.optimization=all

Спасибо

1 Ответ

1 голос
/ 22 марта 2019

Чтобы быстрее принимать сообщения, вам нужно увеличить количество разделов (если это еще не сделано, в зависимости от текущего значения) и сделать один из следующих двух вариантов:

1) увеличить значение для конфигурации num.stream.threads в вашем приложении

или

2) запустить несколько приложений с одной и той же группой потребителей (одинаковые application.id).

как для меня, увеличение num.stream.threads является предпочтительным (пока вы не достигнете количества процессоров компьютера, на котором работает ваше приложение). Постарайтесь постепенно увеличивать это значение, например, перейдите с 4 на 6 к 8 и следите за отставанием потребителя от вашего приложения.

Увеличив num.stream.threads, ваше приложение сможет получать сообщения параллельно, при условии, что у вас достаточно разделов.

...