我正在研究Kafka Consumer,并且注意到它正在消耗本应在2天前使用的消息。它大约每5分钟重复一次这些消息,而生产者将在两天内不再产生这些消息。
我有本应使用的新数据,生产者的日志显示正在生产新数据并将其发送到Kafka。但并没有被另一方消耗,它只是一次又一次地重复相同的数据。
Kafka应用程序基于Spring引导构建。
编辑:生产者每10分钟运行一次,并查询要发送的任何新数据。
更新:我将max.poll.interval.ms从5分钟增加到1小时。目前,距我更新还不到一个小时,但我看不到它在重复数据。但是,如果发生超时,有没有办法让我得到通知。
更新:我要指出的是,有两个kafka使用者,而且我看到有关分区被撤销的事情。
答案 0 :(得分:0)
我有几个建议:
答案 1 :(得分:0)
可能有两个原因: ->您的配置似乎是enable.auto.commit:false和auto.commit.interval.ms:一些值 第二种配置导致消息在某个特定间隔(某个值)后出现。消费者端出现相同的消息以进行处理,因为第一次未成功处理该消息。如果Zookeeper或Broker没有可用的最后偏移量信息,并且auto.offset.reset设置为最小(或最早),则处理将从最小偏移量开始。如果您不想重新处理同一则消息,请将auto.offset.reset更改为最大(或最新)(在这种情况下,消息可能会丢失)。
->如@mjuarez所建议,消费者的组ID可能每次都在更改。