首页 > 解决方案 > Kafka Consumer 每 5 分钟不断获取 2 天前生产和消费的数据

问题描述

我正在研究一个 Kafka 消费者,我注意到它正在消费应该在 2 天前消费的消息。它大约每 5 分钟重复一次这些消息,并且生产者在 2 天内不再生成这些消息。

我有应该使用的新数据,生产者的日志显示新数据正在生成并发送到 Kafka。但另一方面并没有被消耗,它只是一遍又一遍地重复相同的数据。

Kafka 应用程序构建在 Spring Boot 之上。

编辑:生产者每 10 分钟运行一次,并查询要发送的任何新数据。

更新:我已将 max.poll.interval.ms 从 5 分钟增加到 1 小时。目前我更新它还没有一个小时,但我没有看到它重复数据。但是如果发生超时,有没有办法让我得到通知。

更新:我应该指出,有两个 kafka 消费者,我看到一个分区被撤销。

标签: apache-kafkakafka-consumer-apikafka-producer-apispring-kafka

解决方案


可能有两个原因:->您的配置似乎是 enable.auto.commit: false 和 auto.commit.interval.ms: some value 第二个配置导致消息在某个特定间隔(某个值)之后出现。同一条消息出现在消费者端进行处理,因为该消息第一次没有成功处理。如果 zookeeper 或 broker 没有可用的最后偏移信息,并且 auto.offset.reset 设置为最小(或最早),则处理将从最小偏移开始。如果您不想重新处理相同的消息(在这种情况下消息可能会丢失),请将 auto.offset.reset 更改为最大(或最新)。

-> 正如@mjuarez 所建议的,消费者的组ID 可能每次都在变化。


推荐阅读