第一步:将zookeeper的压缩包解压放到这个mini1的/root/apps中,然后修改一个文件:
这里是将这个zoo_sample.cfg这个文件放入到这个zoo.cfg中
cp zoo_sample.cfg zoo.cfg
修改这个zoo.cfg
修改了我们就可以知道我们这个电脑是mini1,然后是server1
Mini2的这一台是server2 。。。。。
然后上面的那个目录是每一个zookeeper的数据存放目录。
接着我知道我这个mini1是server1,所以这个时候我需要创建一个/root/zkdata目录然后在这个目录中写上我的myid为1;
。接着就是另外两台机器的配置。这两台机器的配置和mini1是一致的。我们先用命令将mini1里面的apps分别考到mini2和mini3中。先进入到mini的root这个目录。
最后同样的方法将mini2和mini3都配置一个/root/zkdata,并且mini2的myid是2,mini3的id是3;
最后就是启动服务了:
首先进入到mini1的root/apps/zook。。。/bin目录下,运行zkServer.sh服务。在分别进入mini2和mini3中分别启动。
启动完后:
我们可以查看每一个zookeeper的是follow还是leader;
Mini1
Mini2
Mini3
我们可以知道Mini2是leader。
原因我是先开启mini1的kp,然后开启mini2的kp,最后开启mini的kp。
当我将mini2干掉
Mini3就自动成为了leader
启动客户端:
关于zookeeper中的数据结构维护:
根据数据结构进行维护:
重新连上
在mini1的kp中set的数据,然后在mini3的kp中实时更新,更新速度很快,
其实更新的数据根据设置的心跳。这个就是zookeeper提供的数据的保存和维护,而且这个zookeeper是一个集群的。一个挡掉了,马上就有一个成为了leader,维护的数据也就是上面的树结构,树默认有一个根节点,然后可以在每个节点下面创建节点,在这个维护的树结构中,每个节点都能存放数据通过create创建节点并放值,通过get取节点和值,set可以修改节点的值,一个集群的zookeeper修改,其他的也就会同步修改。数据一致。在创建节点分为临时节点和永久节点,临时节点在这个客户端登录的时候是有值,退出节点就消失,永久节点客户端退不退出都在。在节点有分为带序列的和不带序列的。
监听功能:
当我另外一个数据一改变我设置的监听就能监听到。
Jps能够查看到这个zookeeper的进程id
然后可以kill -9 2006结束这个进程。