kafka主题消费积压问题总结

故障描述:

12月6日下午运维反馈说,某个主题的一个分区消费积压,由于这个主题非常重要,且已经有用户投诉所以运维很紧张,紧急打印堆栈并Dump堆内存后,就重启了这台机器。

故障分析1:

消费这个主题的集群的业务逻辑相对比较简单,主要就是读取某些主题,然后逻辑判断+DB操作后,分流写入到另外某些主题。运维通过kafka监控平台找到积压的主题,发现主题的某个分区积压了几万消息后,找到了消费这个分区的应用程序结点。

故障分析2:

通过对结点堆栈信息分析并未看出什么问题,又通过MAT(Eclipse Memory Analyzer)打开堆Dump文件,通过积压主题名称找到所有和此主题相关的线程,发现这些消费线程中有一个线程运行到(堵塞在?)mysql查询的网络返回阶段。通过这个线程上下文信息看到了SQL语句,这个SQL语句是查询某个表且两个查询字段也已经建立了索引,没有道理因为这个SQL语句引起堵塞!难道这个SQL语句是个慢查询?

注:

此问题已经通知运维找DBA,确认下在那个时间段有没有SQL慢查询,下周看情况再总结相关信息。

相关推荐