Я пытаюсь понять поведение, которое немного сбивает с толку. Мы используем подход Spring Boot и Kafkalistener для потребителей. Конфигурация имеет автоматическую коммиту, установленную True с интервалом по умолчанию 5 секунд. < /P>
Согласно документам, с включенным Cafka Auto Commit, коммит происходит автоматически каждые 5 секунд в фоновом режиме. Таким образом, в пределах 5 -секундного интервала будет около 50 опросов сообщений. Когда все работает нормально, я не вижу никаких проблем. Есть несколько сценариев, которые я пытаюсь понять: < /p>
Мы продолжаем опросить сообщения и говорят, что в течение 4,5 секунды в течение 4,5 секунды сбои в середине обработки опрошенной партии, до достижения 5 -секундного интервала коммита. Это теоретически должно перерабатывать все сообщения с момента последнего коммита 4,5 секунды назад, но он перерабатывает только опросную партию, которая не завершилась успешно. Означает ли это, что существует некоторая постепенная коммита, которая происходит на заднем плане, и только текущая незаконченная партия не включена в смещение коммита? Я вызвал явный сон 10 секунд в слушателе. Согласно документам, это означает, что партия должна быть совершена автоматической, поэтому, если партия не удастся после обработки, она была бы совершена по мере прохождения интервала. Однако, когда я пытаюсь воспроизводить это, явно заставляя убийство стручки, сообщения были переизданы/переизданы как часть следующего опроса. В соответствии с #1 выше, может быть фоновый процесс, не включает в себя текущую партию, поскольку она еще не завершена? < /Li>
< /ol>
Любое объяснение такого поведения? Мое предположение, кажется, имеет смысл, но я хочу быть уверенным, что это происходит. Заранее спасибо!
sg
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-behavior