【kafka】consumer offset提交异常时数据会重复么?

一、问题描述:

问题:

kafka consumer消费poll到某分区数据后未及时commit offset,此时另外一个消费线程消费该分区时会消费到重复数据么?

初步思考

我们已知:

  • 一个分区在某个时刻只能被一个消费线程消费数据
  • kafka服务端和客户端都会维护一个offset

问题引申出来的思考:

  • 当某个消费线程异常了,该怎么处理?
  • 当某个消费线程因为网络抖动暂时异常又很快恢复了,该怎么处理?

二、场景复现:

测试环境:

  • kafkaf服务端版本:2.11-2.2.0
  • kafka客户端版本:0.9.0.1

生产者:

        while (true){
   
            String messageStr = "Message_" + (++messageNo);
            long startTime = System.currentTimeMillis();
            producer.send(new ProducerRecord<Integer, String>(topic,
                    messageNo,
                    messageStr), new DemoCallBack(startTime, messageNo, messageStr));
            Thread.sleep(1000);
        }

消费者:

        while (true) {
   
            ConsumerRecords<Integer, String> records = consumer.poll(1);
            for 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值