Offset commit failed with a retriable exception. You should retry committing the latest consumed off
消费时offset被重置导致重复消费
1.业务背景:
kafka 使用的事2.11_0.10.0.1
在做及时通讯IM的时候,客户端A发完消息后会,使用kafka 通知下游服务(kafka 消费者consumer)进行给B端用户发送消息。
2.现象:
1.在某一时间
在某一时间是kafka consumer poll处理时间9.3 s ,poll这里逻辑用了线程池,只有最后提交offests的时候会有个synchronized,但是一般都是0.1ms的。
public void execute() {try {while (true) {ConsumerRecords<byte[], byte[]> records = consumer.poll(200);StopWatch stopWatch = PerfUtlils.getWatcher();PerfCount.countMetric(MicrometerStat.STAT_KAFKA_CONSUMER, "kafka.consumer.poll.record.count");//1.先找出吧不同的topic 分区for (final TopicPartition partition : records.partitions()) {List<ConsumerRecord<byte[], byte[]>> partitionRecords = records.records(partition);//2.对于同一个分区的不同record用独立线程处理partitionRecords.forEach(record -> {ConsumerWorker<T> worker = new ConsumerWorker<>(record, handler, offsets, partition);worker.setFutureTask(executors.submit(worker));log.info("consumer worker consume 1 message");});}//3.提交offsetscommitAsyncOffsets();PerfCount.durationTimeMetric(MicrometerStat.STAT_KAFKA_CONSUMER, "kafka.consumer.poll.process", stopWatch);}} catch (WakeupException e) {log.info("kafka poll get WakeupException");} finally {commitSyncOffsets();consumer.close();}}
2.这时候业务error 日志是
org.apache.kafka.clients.consumer.RetriableCommitFailedException: Offset commit failed with a retriable exception. You should retry committing the latest consumed offsets.
3.kafka broker 日志:
3.原因:
博主设置的消费者 session.timeout.ms=8000 8s
其中session.timeout.ms 的含义有两个(kafka 0.10.1.0之前):
- 是consumer group 检测组内成员发送奔溃的时间,回个某个group 成员突然崩溃(比如kill -9 或者宕机),group coordinator 有可能需要session.timeout.ms 时间感应到。
- 是consumer 消费处理逻辑的最大时间,倘或consumer 两次poll的时间间隔超过该参数所设的阈值,那么group coordinator 入会认为此consumer跟不上组内其他成员的消费进度并将其”踢出”组中,会进行rebalane
上面文字来自《Apache kafka 实战》
很明显博主的情况属于第二种,这个被”踢出”组中会无法提交位移,之就会造成这些消息会被其他程序消费,但此时刚好这个consumer会再次提交这个offests所有会出现上面的bug。
4.解决办法:
1.将session.timeout.ms 设置大些。
2.
Offset commit failed with a retriable exception. You should retry committing the latest consumed off相关推荐
- 【Flink】Flink kafka报错 Auto-commit of offsets failed for group Offset commit failed with a retriable
1.背景 commit failed with a retriable exception. You should retry committing offsets. [2020-09-05 15:0 ...
- kafka自动提交offset失败:Auto offset commit failed
今天在服务日志中观察数据的消费情况时,发现了一个如下的警告,而且每隔几秒就会出现一次,虽然只是个警告, Auto offset commit failed for group order_group: ...
- 【kafka】kafka Offset commit failed on partition The coordinator is not aware of this member
文章目录 1.背景 1.2 参考 2. 场景2 本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 1.背景 Offset commit failed on ...
- Kafka 异常 : DefaultOffsetCommitCallback.onComplete(ConsumerCoordinator.java:537) -Offset commit faile
Kafka 异常 : DefaultOffsetCommitCallback.onComplete(ConsumerCoordinator.java:537) -Offset commit faile ...
- Commit failed with error: pathspec 'src/main/java/com/leo/demo/juctest/test.java' did not match any
Git 提交报错:Commit failed with error: pathspec 'src/main/java/com/leo/demo/juctest/test.java' did not m ...
- 如何解决SVN Commit failed (details follow): Access denied
遇到问题:因工作需求,今天去项目组备份svn虚拟机.当A同事看到我,说:"你是来备份svn的吧,那我抓紧还有点数据准备提及."想等他提交完了,我再开始备份. 问题来了:A同事拿U盘 ...
- 程序开过多线程,导致hadoop作业无法运行成功——Call to hadoop1:9000 failed on lo cal exception: java.io.IOException: Coul
hadoop集群中某一个节点有时候起不来,查看log日志,有如下错误: 2015-03-09 10:40:30,253 ERROR org.apache.hadoop.hdfs.server.data ...
- svn提示svn: E170001: Commit failed (details follow):解决
设置好防火墙和阿里云服务器控制台防火墙之后还会出现 svn: E170001: Commit failed (details follow): svn: E170001: Authorization ...
- 解决svn: E160028: Commit failed (details follow): svn is out of date问题
1 问题 解决svn: E160028: Commit failed (details follow): svn is out of date问题 2 分析 项目太久未同步了 3 解决问题 更新项目再 ...
- Svn commit failed aborting commit
一.背景 在使用svn管理项目时,删除了文件夹"项目图纸"里面的内容,然后在这个里面新增了一些文件,出现标题中的问题Svn commit failed aborting commi ...
最新文章
- 学习一个 Linux 命令:sort 命令
- 人工智能的价值地图:AI产业增强革命的模式与路径
- 4.3.6 无分类编址CIDR
- **PHP foreach 如何判断为数组最后一个最高效?
- 使用pipeline的函数
- 命令 检查Linux服务器性能
- sqlite 二进制字段 (zz)
- 浅谈如何防范电池事故
- Roguelike+RPG如何给玩家刺激的游戏体验? 《我功夫特牛》系统逆推
- Oracle电子商务套件版本12.1.3自述文件 (Doc ID 1534411.1)
- PHP系列(九)PHP文件系统处理
- mysql undrop_MySQL · 数据恢复 · undrop-for-innodb
- VMware 披露严重0day,影响Workspace One 的多个组件
- 大学计算机一级准考证打印,河海大学计算机等级考试准考证打印入口
- 蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)(C++语言)(Python)
- SpringBoot Controller Post接口单元测试
- 新手学游戏开发必知的一课
- ROS三轮全向轮移动底盘 (01)
- Thunder9(迅雷9)去掉右侧浏览器广告的方法
- 《Total Commander:万能文件管理器》——12.6. 附录