问题分析
导致kafka的重复消费问题原因在于,已经消费了数据,但是offset没来得及提交(比如Kafka没有或者不知道该数据已经被消费)。
总结以下场景导致Kakfa重复消费:
原因1:强行kill线程,导致消费后的数据,offset没有提交(消费系统宕机、重启等)。
原因2:设置offset为自动提交,关闭kafka时,如果在close之前,调用 consumer.unsubscribe() 则有可能部分offset没提交,下次重启会重复消费。
例如:
try {
consumer.unsubscribe();} catch (Exception e) {
}
try {
consumer.close();} catch (Exception e) {
}
上面代码会导致部分offset没提交,下次启动时会重复消费。
解决方法:设置offset自动提交为false
整合了S

本文分析了Kafka中出现重复消费的原因,包括线程意外终止、自动提交偏移量失败等,并提供了相应的解决方案,如禁用自动提交和调整消费组配置。
最低0.47元/天 解锁文章
2901

被折叠的 条评论
为什么被折叠?



