kafka消息重复消费解决方案

本文介绍了Kafka消费者的工作原理及可能出现重复消费的情况,包括进程异常退出和消费时间过长等问题,并提出了提高消费能力和接口幂等处理两种解决方案。

目录

一、kafka消费者的特点

二、出现重复消费的情况

1、consumer在消费过程中,应用进程被强制kill掉或发生异常退出

2、消费者消费时间过长

三、kafka重复消费的解决方案

1、提高消费能力

2、将消费的接口幂等处理,从而不用考虑重复消费的问题


一、kafka消费者的特点

Kafka消费者以消费者组(Consumer Group)的形式消费一个topic,发布到topic中的每个记录将传递到每个订阅的消费者组中的一个消费者实例。Consumer Group 之间彼此独立,互不影响,它们能够订阅相同的一组主题而互不干涉。

kafka中跟消费者有关的几个重要配置参数:

enable.auto.commit 默认值true,表示消费者会周期性自动提交消费的offset

auto.commit.interval.ms 在enable.auto.commit 为true的情况下自动提交的间隔,默认值5000ms

max.poll.records 单次消费者拉取的最大数据条数,默认值500 

max.poll.interval.ms 默认值5分钟,表示若5分钟之内消费者没有消费完上一次poll的消息,那么consumer会主动发起离开group的请求

消费者消费消息之后又是如何提交对应消息的位移(offset)的呢?

当在auto­commit=true时(自动提交offset时),当上一次poll方法拉取的消息消费完时会进行下一次poll,在经过auto.commit.interval.ms间隔后,下一次调用poll时才会提交所有已消费消息的offset。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值