前言
公司发生过kafka的事故,集群挂了导致数据域各种服务都跪了,然后都需要回溯任务。
为啥会发生这种事呢?该怎么处理呢?
虽然不是op,但是rd还是了解了解也挺有趣的~
我之前就了解了这个事情,现在写写记录一下~
事情的大概原因
事情需要脱敏讲讲~
zk集群重启操作,导致脑裂,导致kafka的集群受影响不可用。
一般为啥要重启zk呢,因为会发现某个命名空间的写入量持续增加,就重启了一下。
但是zk的地址填错,比如填本机地址;(程序员经常干这个事)
后面一些异常操作,又导致了有zk启动了老的配置,导致集群脑裂。
需要修改一致重启zk服务。
解决方法
主要的依赖kafka的服务都应该有双链路。
需要有发现问题切换到备选链路的能力;
其实还有一些骚操作,运维人员升级版本什么的真的要小心。升级版本有时候也会导致出问题,所以做好备份和容灾。
小知识:
kafka版本:
kafka的消息协议 V0版本(0.10.0之前是V0,0.10.0到0.11.0是V1支持时间戳,0.11.0之后是V2支持header