kafka消费者设置成自动提交offset时,如果不提交,会造成什么问题呢?有影响吗?
如果不提交,消息会重复消费的。
大神,有个问题,我把enable-auto-commit设置为false了。producer里面send消息,consumer是用了 @KafkaListener自动监听,有消息就消费,打印出来消息。auto-offset-reset设置为了earliest,也就是如果没有消息就从0开始消费。我先是send了几条消息,consumer监听到,消费了消息,控制台打印出来。然后我重启springboot,这个时候,消费者应该是从0开始消费,把我刚才send进去的消息再打印出来一遍,也就是重复消费才对,但是事实是控制台并没有打印之前的,没有重复消费,我这个时候send新的一条,也只是消费打印了新的一条消息。消息过期时间也是默认的7天,所以很迷惑,求大神指点下。
怀疑你的enable-auto-commit没生效。
另外,earliest,生效都有一个前提条件,那就是对于同一个groupid的消费者,如果这个topic某个分区有已经提交的offset。那么无论是把auto.offset.reset=earliest还是latest,都是失效的,消费者会从已经提交的offset开始消费。
https://www.orchome.com/535
多谢大神指点
找不到想要的答案?提一个您自己的问题。
0 声望
这家伙太懒,什么都没留下
如果不提交,消息会重复消费的。
大神,有个问题,我把enable-auto-commit设置为false了。producer里面send消息,consumer是用了 @KafkaListener自动监听,有消息就消费,打印出来消息。auto-offset-reset设置为了earliest,也就是如果没有消息就从0开始消费。我先是send了几条消息,consumer监听到,消费了消息,控制台打印出来。然后我重启springboot,这个时候,消费者应该是从0开始消费,把我刚才send进去的消息再打印出来一遍,也就是重复消费才对,但是事实是控制台并没有打印之前的,没有重复消费,我这个时候send新的一条,也只是消费打印了新的一条消息。消息过期时间也是默认的7天,所以很迷惑,求大神指点下。
怀疑你的enable-auto-commit没生效。
另外,earliest,生效都有一个前提条件,那就是对于同一个groupid的消费者,如果这个topic某个分区有已经提交的offset。那么无论是把auto.offset.reset=earliest还是latest,都是失效的,消费者会从已经提交的offset开始消费。
https://www.orchome.com/535
多谢大神指点
你的答案