Как решить исключение «кафка-координатор-сердцебиение-поток», когда потребитель кафки снова запускается через некоторое время?

#java #apache-kafka #kafka-consumer-api

Вопрос:

Я запускаю файл потребительской банки Кафки в системе Linux. Я не запускаю приложение в качестве службы, а также мой компьютер не работает в течение 24 часов. Всякий раз, когда я запускаю потребитель Kafka, я получаю предыдущие сообщения от брокера Kafka (AUTO_OFFSET_RESET_CONFIG -> «последний»). Но некоторое время спустя я получаю исключение «Кафка-координатор-сердцебиение-поток, отправляющий запрос на выход из группы координатору».

В нем говорится: «в связи с истечением времени опроса потребителей. Это означает, что время между последующими вызовами функции poll() было больше, чем настроенное max.poll.interval.ms, что обычно подразумевает, что цикл опроса тратит слишком много времени на обработку сообщений. Вы можете решить эту проблему либо путем увеличения max.poll.interval.ms или путем уменьшения максимального размера пакетов, возвращаемых в poll (), с помощью max.poll.records.»

Я также увеличил «max.poll.interval.ms» до 300000 мс (5 минут), «максимум записей опроса» до 500″, «session.timeout.ms» до 10000 мс «heartbeat.interval.ms» до 3000 мс, но все равно я получаю ту же ошибку.

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

Может ли кто-нибудь, пожалуйста, дать мне несколько предложений и рекомендаций по этой проблеме? Любая помощь была бы очень признательна. Спасибо

с уважением,