Spring Kafka потребляет старые сообщения, которые уже потребляются потребителем - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть загрузочное приложение Spring и я использую Spring Kafka. мы создали потребителя, который потребляет сообщения из 4 тем. эти темы не имеют никакого раздела. проблема, с которой я сталкиваюсь здесь - это случайное поведение, которое из трех тем, в любой остановке смещения топи c, и мой потребитель продолжают снова и снова потреблять одни и те же сообщения с этой топи c, пока нам не нужно вручную переместить смещение в latest.below - это конфигурация YAML, которая у меня есть:

spring:
  kafka:
   consumer:
      bootstrap-servers:  ${KAFKA_BOOTSTRAP_SERVERS}
      group-id: group_id
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
kafka:
  consumer:
    allTopicList: user.topic,student.topic,class.topic,teachers.topic**

, так как это загрузочное приложение Spring, смещение по умолчанию установлено как последнее. что я делаю не так, пожалуйста, помогите мне понять.

1 Ответ

0 голосов
/ 27 апреля 2020

Какую версию вы используете?

Вы должны установить

...consumer:
     enable-auto-commit: false

Контейнер слушателя будет более надежно фиксировать смещения.

Также следует учитывать

     ack-mode: RECORD

и контейнер будет фиксировать смещение для каждой успешно обработанной записи (по умолчанию BATCH).

...