нагрузку (5к+ RPS). В max.poll.interval.ms указано 5 минут. И клиенты потихоньку умирают. Практически перестают читать. Посмотрел по логам, а там как будто пуллит раз в 5 минут, хотя по идее поллинг на репите постоянном. В чем может быть проблема ? Куда копать ?
Код бы увидеть или хотя бы алгоритм верхнеуровнево
Ну мы используем zio kafka, если о чем то говорит. Там в исходниках тянется poll, в него передается 5 минут. После этого процессинг этого эвента, потом коммит и через 50 миллисекунд снова poll и тд. max.poll.records стоит 500. По метрикам тачка успевает процессить в моменте 50-100 элементов. Либо я как-то не понимаю max.poll.interval.ms (или то значение, что в poll перелдается), либо по моем примеркам 500 / 50 в худшем случае 2 минуты будет
То есть проблема в том, что при каждом poll вычитывается все меньше записей? Держите одно и то же соединение с брокером или каждый раз нового консьюмера поднимаете? Если poll должен быть через 50мс, но по логам раз в 5 минут, то либо в логах не все пишется, либо все таки поднимаете новое соединение и Кафка ждет, пока предыдущее отвалится по тайм-ауту. Попробуйте max poll interval уменьшить и посмотреть, что изменится
А как проверить, что новое соединение создаётся или нет ? Чтобы искать в сорсах либы
в коде программы должно быть создание консьюмера, а потом полл. надо посмотреть, создаётся ли новый коньсюмер перед каждым поллом или нет
Обсуждают сегодня