Kafka消息重复消费问题

1.背景
线上服务消费Kafka消息时,每条消息处理时间比较长(涉及到文件解析+后台业务系统调用),发现了2个问题:1:旧的消息被重复消费;2:后续新的消息则会被延迟消费

2.原因
Kafka consumer两个配置参数:
1)max.poll.interval.ms:两次poll之间允许的最大时间间隔,默认300s(5分钟)
两次poll超过此时间间隔,Kafka broker会进行rebalance,导致客户端连接失效,无法提交消费offset信息,下次重连消费又会从之前的offset位置开始消费,从而引发重复消费。

2)max.poll.records:一次poll拉取的消息数量,默认值500条
每条消息处理的业务时间超过60秒,那么当前这批消息处理时间将超会过5分钟,从而引发poll超时,消息数据回滚,最终导致重复消费。

3.解决
1)代码优化
比如通过异步线程池来处理

2)调整相关参数:
. 增大max.poll.interval.ms的值
. 减小max.poll.records的值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值