Мы используем стратегию ручной фиксации. Мы настроили bean-компонент, который фиксирует все успешно использованные сообщения. Мы пытаемся добавить логику для повторного использования неподтвержденных сообщений. Мы сталкиваемся с проблемой, что одно и то же сообщение потребляется, но временной интервал для повторного использования неодинаков. Иногда восстанавливается быстро, но иногда занимает несколько часов.
Как мы можем убедиться, что незафиксированные сообщения будут обработаны в течение заданного времени.




Вы можете выполнить операцию seek() над Consumer, чтобы сбросить его до определенного смещения.
Ну, я не уверен, зачем вам повторно использовать сообщение или зачем вам нужно использовать неподтвержденное сообщение? Если брокер kafka настроен с ack=all или ack=leader, потребитель будет использовать только подтвержденные сообщения. Я хочу сказать, что, возможно, есть лучшее решение.