В вашем потребителе вы будете использовать commitSync , который фиксирует смещение, возвращаемое при последнем опросе.Теперь, когда вы запускаете своего второго потребителя, так как он находится в той же группе потребителей, он будет читать сообщения с последнего зафиксированного смещения.
Сообщения, которые будет потреблять ваш потребитель, зависят от группы потребителей, к которой он принадлежит.Предположим, у вас есть 2 раздела и 2 потребителя в одной группе потребителей, тогда каждый потребитель будет читать из разных разделов, что помогает достичь параллелизма.
Итак, если вы хотите, чтобы ваш второй потребитель читал с начала, вы можете сделать одиниз 2 вещей:
а) Попробуйте поместить второго потребителя в другую группу потребителей.Для этой группы потребителей не будет сохранено никакого смещения.В это время, auto.offset.reset
config будет определять начальное смещение.Установите auto.offset.reset
на earliest
(сбросить смещение до самого раннего смещения) или latest
(сбросить смещение до самого последнего смещения).
b) Найти начало всех разделов, назначенных вашему потребителю с помощью: consumer.seekToBeginning(consumer.assignment())
Документация: https://kafka.apache.org/11/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#seekToBeginning-java.util.Collection-
https://kafka.apache.org/documentation/#consumerconfigs