Кафка ручный сценарийJAVA

Программисты JAVA общаются здесь
Anonymous
Кафка ручный сценарий

Сообщение Anonymous »

Мы используем Spring Boot Kafka Slixer для потребления сообщений от Kafka. В настоящее время у нас есть Auto Commit Offset, и поэтому смещение происходит каждые 5 секунд (интервал автоматического коммита по умолчанию). Мы заправляем Кафку на партию по 100 записей за раз и занимаем около 300 миллисекунд для обработки сообщений. В обычном сценарии, где будет проходить несколько опросов сообщений и один коммит каждые 5 секунд, поскольку они обрабатываются довольно быстро. Даже если сервисный стручок опускается до следующего смещения, код является идентифицированным, поэтому любые сообщения, не предпринятые, еще не будут переизданы/переизданы в случае этой проблемы. Если обработка завершена нормально, то нет проблем. Но если есть какие -либо ошибки при обработке этих сообщений, которые уже упоминаются, мы потеряем эти сообщения. Я думал о том, чтобы изменить режим ACK на руководство и совершить после каждой партии, независимо от того, сколько времени это займет (конечно, меньше, чем Max.Poll.Interval), но это увеличит # смещения в 10 раз. Я также подумал о том, чтобы иметь внутренний таймер, чтобы признать, когда таймер говорит, что 5 секунд с момента последнего опроса. Таким образом, коммит не произойдет, когда текущая обработка опроса занимает больше 5 секунд и будет выполнена только позже. Я также пробовал различные режимы ACK, такие как count/count_time, но ничто из этого не решает вариант использования здесь. Не уверен, как это можно обработать.
Есть мысли по этому поводу?

Подробнее здесь: https://stackoverflow.com/questions/797 ... springboot

Вернуться в «JAVA»