记一次KAFKA TroubleShooting

简介:

线上是同事写的flume-kafkaplugin来实现对kafka消费到其他终端的,不过最近遇到几个莫名的case.

现象:flume消费延迟,因为当时比较紧急,同事想把延迟的数据丢掉从新的点开始追,就清了offset,重启就开始消费新的地方了,不过我记得0.7.2kafka的默认autooffset.resetsmallest应该没用啊,后来才知道同事hard code的一些参数:

props.put("zk.sessiontimeout.ms","60000");

props.put("fetch.size",String.valueOf(Integer.parseInt((getBatchSize(context))) * 300 * 1024));

props.put("autocommit.enable","false");

props.put("queuedchunks.max","100000");

props.put("autooffset.reset","largest");

props.put("socket.buffersize","102400000");

props.put("socket.timeout.ms","60000");

怪不得设置了batchsize会报message too bigexception=.=

不过即使丢弃了消息还是没解决问题,我们又把offset修改了回去.主要是flume的消费能力是平时的一半,必须要找到影响这个的因素.

因为比较紧急,临时增加了一倍consumer“解决了”消费能力的问题.

后来发现,当时这个consumergroup连接的zk connect stringzk fd超过了ulimit所设置的,不过连接数才到3K而已,这是为什么呢?

查了一下issue list发现kafka 0.7.2依赖的zk 3.3.4KAFKA-318)有file descriptor泄漏的bugZOOKEEPER-1309(3.3.4 bug太多了,还有升级回滚问题1149)

后来同事测试了一下3.4.5基本上是兼容了,升级解决.

最后再插一个kafkabug,就是即使autocommit被关闭了,这个版本的kafkarebalance时还是会flush offset,也多亏这个BugKAKFA-919)了,否则不知道有多少重复数据了=.=

PS:不过线上使用的话还是把autocommit打开吧,可以将interval调大一点否则会造成不少的麻烦.不过打开这个还要注意另外一个Bug(KAFKA-601),ZK对于KAFKA还是很关键的,而下一篇就是和ZK相关了.



本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1335673,如需转载请自行联系原作者


相关文章
|
11月前
|
存储 前端开发 JavaScript
useRef 钩子使用技巧
【10月更文挑战第12天】本文详细介绍了 React 中的 `useRef` Hook,包括其基础概念、基本用法、常见问题与易错点以及如何避免这些问题。通过具体代码示例,解释了 `useRef` 的应用场景,如保存对 DOM 元素的引用、保存回调函数和定时器 ID 等,帮助开发者更有效地使用这一工具。
384 14
|
存储 城市大脑 安全
史上首金!阿里云分布式存储技术获中国发明专利金奖
阿里云分布式存储技术专利《一种分布式存储系统升级方法和装置》(专利号:ZL201511034171.7)获颁中国专利金奖,这是阿里云14年创业发展史上荣获的首个专利金奖。
1538 5
|
应用服务中间件 nginx
解决nginx 出现 413:Request Entity Too Large
解决nginx 出现 413:Request Entity Too Large
1141 0
|
存储 搜索推荐 Java
衣物搭配系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
衣物搭配系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
373 0
|
IDE 开发工具
Intellij IDEA 默认打开上次项目设置
Intellij IDEA 默认打开上次项目设置
647 0
Intellij IDEA 默认打开上次项目设置
|
XML Java jenkins
Jenkins教程之java代码编译、打包、代码扫描
java代扫描的话,可以集成一下sonarqube的扫描,同时可以在扫描代码的同时再统计一下代码行数等信息。
Jenkins教程之java代码编译、打包、代码扫描
|
NoSQL Shell Perl
cassandra数据备份与迁移
单机备份 注意备份的时候schema也要备份一下,否则不能恢复快照! 1.备份单个keyspace schemacqlsh -e "DESC KEYSPACE user" > user_schema.
7672 0
|
存储 缓存 文字识别
ORACLE RAC体系结构图
 Oracle 11G RAC体系结构: RAC环境与单实例最主要的区别是 RAC的每个实例都有属于自己的SGA、后台进程。
3773 0
|
4天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1106 0
|
3天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
508 10