Может ли производитель Kafka сделать разделение, осведомленное об отставании потребителя? - PullRequest
0 голосов
/ 13 января 2020

Мы, производитель Kafka, создаем сообщения для topi c, который потребляется только одной группой потребителей. Скорость потребителей совсем другая. У нас всегда есть определенное количество потребительских лагов в качестве буфера.

Возможно ли, чтобы производитель знал задержку каждого раздела группы потребителей и сначала отправлял сообщения в раздел с самой низкой задержкой? И возможно ли использование клиентов C / C ++ или Java клиентов?

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 января 2020

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

Я бы предложил настроить другие потребительские настройки, такие как размеры / частота опроса

1 голос
/ 13 января 2020

Это невозможно.

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

Посмотрите, например: https://dzone.com/articles/custom-partitioner-in-kafka-lets-take-quick-tour.

Стратегия работы с разделителями по умолчанию - циклический перебор

...