女主宣言
本文是作者根据实际经验总结出的关于Kafka集群的故障恢复相关的总结,希望对大家有所帮助。
PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!
Kafka 集群部署环境
1、kafka 集群所用版本 0.9.0.1
2、集群部署了实时监控: 通过实时写入数据来监控集群的可用性, 延迟等;
Part
1
1
集群故障发生
● 集群的实时监控发出一条写入数据失败的报警, 然后马上又收到了恢复的报警, 这个报警当时没有重要,没有去到对应的服务器上去看下log, 恶梦的开始啊~~~
● 很快多个业务反馈Topic无法写入, 运维人员介入
2
故障解决
● 运维人员首先查看kafka broker日志, 发现大量如下的日志:
● 这个问题就很明了了, 在之前的文章里有过介绍: Kafka运维填坑, 上面也给出了简单修复, 主要原因是 新版kafka 客户端 sdk访问较旧版的kafka, 发送了旧版 kafka broker 不支持的request, 这会导致exception发生, 然后同批次select出来的所有客户端对应的request都将被抛弃不能处理,代码在 SocketServer.scala
里面, 大家有兴趣可以自行查阅