kafka中,使用ack提交时,存在重复消费问题

ack提交时,存在重复消费??

往consumer监听的topic中,增加了一条数据,但是代码消费了好几次,而且确实也走ack.acknowledge();这块逻辑了,因为处理的逻辑是要入库的,导致数据多了好几条,后排查得知是配置问题

...

spring.kafka.consumer.enable-auto-commit=true

spring.kafka.consumer.auto-offset-reset=latest

代码是刚拿到手,没有注意这块配置问题,因为上述配置导致重复消费,改成下面这种就可以了

...

spring.kafka.consumer.enable-auto-commit=false

spring.kafka.consumer.auto-offset-reset=latest

原因:一旦设置了 enable.auto.commit 为 true,Kafka 会保证在开始调用 poll 方法时,提交上次 poll 返回的所有消息。从顺序上来说,poll 方法的逻辑是先提交上一批消息的位移,再处理下一批消息,提交顺序问题导致重复消费

相关推荐
小股虫13 分钟前
分布式一致性算法深度解析:Paxos、Raft与ZAB的原理、实现与应用
分布式
Tan_Ying_Y30 分钟前
分布式环境下,怎么保证线程安全
分布式
seven_7678230981 小时前
【前瞻创想】Kurator架构演进与云原生未来
分布式·云原生·架构·kurator·全链路
@鱼香肉丝没有鱼2 小时前
大模型分布式微调 & Xtuner
分布式·大模型微调·xtuner·llamafactory
Hello.Reader2 小时前
用 Flink SQL 搭建一个实时统计应用Kafka → Flink → MySQL 实战
sql·flink·kafka
路边草随风2 小时前
java 实现 flink 读 kafka 写 delta
java·大数据·flink·kafka
Wokoo72 小时前
C/S 架构与 B/S 架构:核心差异 + 选型指南
分布式·后端·中间件·架构
小股虫2 小时前
RabbitMQ深度解析:从入门到原理再到实战应用
分布式·rabbitmq
zzhongcy2 小时前
RocketMQ、Kafka 和 RabbitMQ 等中间件对比
kafka·rabbitmq·rocketmq
CRUD酱2 小时前
RabbitMQ是如何解决消息堆积问题的?
分布式·rabbitmq