07. kafka cluster在zk宕机的情况下是否还能提供读写服务
前言:
前段时间公司要对网路中的一台交换机进行维修,由于kafka集群和zk集群之间的通讯要经过交换机,所以导致kafka集群和zk集群之间的通讯会中断。我们知道kafka集群是用zk作为分布式服务协调和配置中心使用的,所以就产生了一个疑问,断网之后kafka是否还能正常的提供读写服务呢?
分析
用过kafka的同学们都知道,无论是发送数据还是消费数据,kafka client都需要先获取相关topic的元数据信息,获取元数据信息是从我们提供的bootstrap.servers地址中随机获取一个地址,然后和该kafka broker进行通讯获取meta信息,接着获取topic的leader地址,然后通过leader地址进行数据的发送和消费。
通过上面的分析初步认定zk宕机不会影响kafka集群提供读写服务
验证
通过以下步骤进行验证:
1. 启动了一个单节点的zk
2. 启动一个三节点的kafka集群
3. 创建一个单partition,3副本的topic
4. 把zk的进行直接kill,用于模拟kakfa集群和zk通讯中断
5. 利用kafka client KafkaProducer向kafka发送数据
通过以上五步的验证,可以正常的向topic发送数据
总结
本篇文章由于比较简单,没有提供相关的截图,想验证的朋友可以按照上面的步骤进行操作。
有任何疑问或者kafka的其它问题欢迎留言,我们一块儿讨论,共同进步,谢谢。