Spring Kafka消耗了消费者已经使用的旧消息

时间:2020-04-27 12:24:23

标签: spring-boot apache-kafka kafka-consumer-api spring-kafka

我有一个Spring引导应用程序,并使用Spring Kafka。我们创建了一个使用者,该使用者正在使用4个主题的消息。这些主题没有任何分区。我在这里面临的一个主要问题是在三个主题中出现了一个随机行为,在任何一个主题中偏移都停止了,我的消费者不断从该主题中重复使用相同的消息,直到我们需要手动将偏移移到最新的位置为止。下面是配置我有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 :(得分:0)

您使用的是什么版本?

您应该设置

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

侦听器容器将更可靠地提交偏移量。

您还应该考虑

     ack-mode: RECORD

,容器将为每个成功处理的记录提交偏移量(默认为BATCH)。