2018.5.12 storm数据源kafka堆积

Posted yangdi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.5.12 storm数据源kafka堆积相关的知识,希望对你有一定的参考价值。

问题现象:

    storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积。

排查:

  1、查看stormUI,技术分享图片

storm拓扑结构如下:

技术分享图片

看现象:

 a、storm代码2月份上线,已经平稳运行3个月,没有任何代码改动;

 b、四个spout发出消息的complete latency 延时较高,高的可达30s,failed数量较多;

 c、Topology Visualization中最后一个bolt:ContentOutPutBolt变为红色。

定位步骤:

a、bolt中有脏数据忘记ACK,导致该类数据重发,经检查不存在这个现象,排除这个原因;

b、对最后一个bolt的关键步骤打日志,记录每个步骤的时间,发现在ACK前最后一步写 kafka耗时不稳定,高的可达40s,将问题锁定在写kafka这里;

c、查看storm网卡流量,发现网卡发送数据流量也是从8点开始变高,一直居高不下;

技术分享图片

d、联系网络,查看storm与kafka之间的网路是否有延时或丢包,结果情况还好,实际是向kafka域名发送数据,但测的是IP,不知道会不会在域名解析这一层有问题!技术分享图片

e、为了先解决问题,将源头堆积的数据先消费掉,改了两个地方:1、将ACK放到写KAFKA之前;2、修改写KAFKA的消息长度,改为一半。发现堆积的数据慢慢消费掉,网卡发送流量也趋于平稳,之后将代码回滚,系统依然正常运行,没有再出现堆积,问题解决!

 

可是问题来了!到底什么原因导致网卡发送流量变高的呢?查看了数据源头的topic并没有突增的情况,难道是查看的方式有问题?费解!

 

以上是关于2018.5.12 storm数据源kafka堆积的主要内容,如果未能解决你的问题,请参考以下文章

storm 整合 kafka之保存MySQL数据库

storm集成kafka的应用,从kafka读取,写入kafka

大牛总结分享:大数据技术Storm和Kafka 哪些场景更适合

无法在kafka-storm中将偏移数据写入zookeeper

Storm集成Kafka应用的开发

Kafka数据堆积分析处理