![Kafka进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/408/43738408/b_43738408.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1.4 测试ZooKeeper集群
ZooKeeper集群的功能中很重要的就是集群的节点之间数据同步与Leader的选举机制。下面进行一个简单的测试。
(1)测试集群的数据同步功能。在每个节点上启动zkCli.sh的命令行工具,并在kafka101的虚拟机上创建一个节点,试着在kafka102和kafka103的虚拟机上进行查看,如图2.5所示。
![](https://epubservercos.yuewen.com/527ABA/23020654009771406/epubprivate/OEBPS/Images/42653-00-047-01.jpg?sign=1738950483-PqFeekzYlgf64co9VKVtqxRExUcKpLwi-0-d5c0ad6e4e0641ad24f9c409633027de)
图2.5 ZooKeeper集群的数据同步
在kafka101上创建一个节点/node1,并保存数据hellozookeeper。这个新创建的节点和数据将会自动同步到kafka102和kafka103的虚拟机。
(2)测试集群的选举机制。先来看一下集群当前的Server状态,如图2.6所示。
![](https://epubservercos.yuewen.com/527ABA/23020654009771406/epubprivate/OEBPS/Images/42653-00-047-02.jpg?sign=1738950483-qlE0JQ0nU70a6QwFWjgBT3Atd7UEpVnc-0-8522658fc24632a1a236319b23bd2794)
图2.6 ZooKeeper集群的Server状态
可以看到kafka103的虚拟机上的Server是Leader状态,通过下面的方式可以杀掉kafka103的虚拟机上的Server。
![](https://epubservercos.yuewen.com/527ABA/23020654009771406/epubprivate/OEBPS/Images/42653-00-048-1.jpg?sign=1738950483-H149iX6v99ezVGzhQGlRTHBCLe5SBch0-0-eaf2aed892e02c6787e1f5180e8a584f)
其中,1572是ZooKeeper Server的进程号。
(3)重新查看ZooKeeper中Server的状态,在每个节点上执行zkServer.sh status,如图2.7所示。
![](https://epubservercos.yuewen.com/527ABA/23020654009771406/epubprivate/OEBPS/Images/42653-00-048-01.jpg?sign=1738950483-VtrH6DapwSTRUrYXE5MVf1WIkIzlGRws-0-eb0ad7c2b2d79d99360a4b14cbc65476)
图2.7 ZooKeeper集群的选举
通过观察图2.7可以看到,kafka103的虚拟机上的Kafka Server已经不能访问了。但是ZooKeeper集群利用本身的选举机制将kafka102的虚拟机上的Kafka Server选举成Leader,而kafka101的虚拟机上的Kafka Server依然是Follower的状态。