Некоторые разделы, кажется, имеют приоритет, когда потребитель читает из нескольких разделов - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть сервис, который читает тему Кафки, используя librdkafka.Я заметил, что если потребитель на какое-то время отключается, некоторые записи в журнале создаются в kafka (это вполне нормально и ожидаемо)

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

Например, скажем, у меня есть потребитель X, и он требует разделы с 30 по 50. Когда потребитель начинаетна каждой очереди 10 000 записей.

То, что я вижу, это ожидающие записи для тренда 30-40 вниз, в то время как ожидающие записи для 41-50 растут.Когда 30-40, наконец, достигает нуля (или приближается к нулю), 41-50 начинает снижаться.

Почему это происходит?Это функция клиента или функция сервера?

1 Ответ

1 голос
/ 06 апреля 2019

Кафка работает так, как потребитель будет продолжать переключаться между разделами для получения данных, однако Kafka разумно обеспечивает переключение и обработку только тех многочисленных разделов, которые он может обрабатывать, основываясь на возможностях вашего потребителя, т. Е. Если бы ваш потребитель былболее мощный (производительность сервера) потребовал бы немного больше разделов, но не берите в голову, что это займет оставшиеся разделы в секунду после завершения с первыми.В итоге: если вы создаете X-разделы, вы ожидаете, что они пройдут все по одному перед повторным посещением первого, но это снизит производительность за счет больших усилий при переключении.В вашем случае я понимаю, что, поскольку в других разделах также есть бизнес-данные, вы не хотите их сильно задерживать, поэтому я предлагаю сократить количество разделов.

...