当前位置: 首页 > backend >正文

现场血案:Kafka CRC 异常

一、背景

现场童鞋说客户的研发环境突然在近期间歇式的收到了CRC的相关异常,异常内容如下

Record batch for partition skywalking-traces-0 at offset 292107075 is invalid, cause: Record is corrupt (stored crc = 1016021496, compute crc = 1981017560)

报错完全没有规律性,有可能半天都不出现一次,也有可能一小时出现2、3次

而这个报错会导致Kafka的Consumer hang死,即无法继续消费后续的消息,只能手动重启Consumer才能继续,是非常严厉的报错,会直接导致生产不可用

另外,我们部署的供内部云平台组建使用的Kafka也会出现这种报错

二、分析

我们另一个客户现场之前也出现过CRC报错:

  • 当前客户现场,问题只会出现一次,如果手动重启Consumer,该问题便会消失,如果换个Consumer来消费,问题也会消失,好像它只是昙花一现,且再也无法复现,如同鬼魅
  • 另一个客户现场,确实会报CRC异常,但稳定复现,只要出现了,不论Consumer重启多少次,也不论多少个Consumer来消费,均是会报CRC异常

这完全不是一个现象了,似乎又陷入了瓶颈

猜测原因:

  • Kafka社区Bug:当前使用的版本是2.8.2,仔细翻阅了2.8版本的版本,都没有发现传输过程crc的bug,似乎从kafka1.0版本后基本上就没有crc相关的bug了
  • 网络问题,如果网络过程中被篡改数据,似乎符合这个场景
  • 机器原因,磁盘部分损坏?这种情况是会出现crc,但是会一直出现,就跟另一个现场的情景一样。也发现如果内存出现问题也会出现crc,但是检查了一圈未发现这个内存问题

似乎该问题大概率是网络问题,当然家里也模拟过客户现场环境,没法复现,因此只能在客户现场先从网络方面排查,还好客户也比较支持这个排除,因此还算顺利。

三、网络排查

3.1、埋点

进行网络排查的话,我们就要执行TCP抓包,即执行tcp

http://www.xdnf.cn/news/6635.html

相关文章:

  • HANA数据库死锁
  • PYTHON训练营DAY27
  • qt5.14.2 opencv调用摄像头显示在label
  • CS016-4-unity ecs
  • MySQL查询不区分大小写问题剖析
  • 58. 区间和
  • Multimodal models —— CLIP,LLava,QWen
  • java输入输出类
  • MySQL MCP 使用案例
  • ubuntu 更新华为源
  • windows下authas调试tomcat
  • 突发,苹果发布下一代 CarPlay Ultra
  • WEB安全--Java安全--shiro721反序列化漏洞
  • 快速选择算法:优化大数据中的 Top-K 问题
  • 本土DevOps革命:Gitee如何撬动中国企业的数字化转型新动能
  • ssti刷刷刷
  • 使用 LSTM/GRU 预测设备异常的模型
  • 【HTML5学习笔记2】html标签(下)
  • Java视频流RTMP/RTSP协议解析与实战代码
  • PCL 计算一条射线与二次曲面的交点
  • 西安前端面试
  • YOLO+UI(C#)开发
  • 基于React的高德地图api教程006:两点之间距离测量
  • 大规模CFD仿真计算中,SIMPLE或者PISO算法中加速压力场方程迭代求解
  • SZU 编译原理
  • BASE理论
  • 四、xlib区域
  • go 集成base64Captcha 支持多种验证码
  • 【机器学习|学习笔记】 K近邻算法(K Nearest Neighbour,KNN )详解,附代码。
  • 从银行排队到零钱支付:用“钱包经济学”重构Java缓存认知