Я пытаюсь внедрить простую программу производителя -> Kafka -> Consumer на Java. Я могу произвести, а также успешно использовать сообщения, но проблема возникает, когда я перезапускаю пользователя, когда некоторые из уже потребляемых сообщений снова получают потребитель от Kafka (не все сообщения, но некоторые из последних потребляемые сообщения).Простая копия доставки сообщений Simple-Kafka-consumer
У меня есть autooffset.reset=largest
у моего потребителя, а мое имущество autocommit.interval.ms
настроено на 1000 миллисекунд.
Является ли эта «повторная доставка некоторых уже потребляемых сообщений» известной проблемой, или есть какие-либо другие настройки, которые мне не хватает здесь?
В принципе, существует ли способ обеспечить, чтобы ни один из ранее потребляемых сообщений не получал/потреблял потребитель?
это может показаться глупым, но если мы скажем, например, реализуем логику пользовательской фиксации, тогда можно управлять смещением для каждого сообщения. Например, если у меня есть два сообщения со значением timestamp в нем, я хотел бы установить смещение на основе метки времени. Поэтому, если вторая запись имеет более раннюю временную метку, тогда назначенное ей смещение должно быть меньше, чем другое. Поэтому во время потребления я получаю сообщения, которые уже отсортированы. – user2720864