上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1.4 测试ZooKeeper集群
ZooKeeper集群的功能中很重要的就是集群的节点之间数据同步与Leader的选举机制。下面进行一个简单的测试。
(1)测试集群的数据同步功能。在每个节点上启动zkCli.sh的命令行工具,并在kafka101的虚拟机上创建一个节点,试着在kafka102和kafka103的虚拟机上进行查看,如图2.5所示。
图2.5 ZooKeeper集群的数据同步
在kafka101上创建一个节点/node1,并保存数据hellozookeeper。这个新创建的节点和数据将会自动同步到kafka102和kafka103的虚拟机。
(2)测试集群的选举机制。先来看一下集群当前的Server状态,如图2.6所示。
图2.6 ZooKeeper集群的Server状态
可以看到kafka103的虚拟机上的Server是Leader状态,通过下面的方式可以杀掉kafka103的虚拟机上的Server。
其中,1572是ZooKeeper Server的进程号。
(3)重新查看ZooKeeper中Server的状态,在每个节点上执行zkServer.sh status,如图2.7所示。
图2.7 ZooKeeper集群的选举
通过观察图2.7可以看到,kafka103的虚拟机上的Kafka Server已经不能访问了。但是ZooKeeper集群利用本身的选举机制将kafka102的虚拟机上的Kafka Server选举成Leader,而kafka101的虚拟机上的Kafka Server依然是Follower的状态。