zk集群核心知识之三种角色及其作用:
注册中心的三种模式:
选举核心概念及选举状态:
选举发生的时机及选举算法:
zookeeper集群的搭建:
我们先来启动三台虚拟机:
然后我们来修改一下我们的zookeeper配置:
首先我们要打开这个文件:
我们之前配置过这个。
我们现在根据三台服务器去设置一下我们的端口:
再创建一个这个文件。我们的这个文件的配置就结束了。
我们之前已经在Linux虚拟机里创建了zookeeper了,但是由于我们刚才去更改了配置文件,那么我们这里就把这个原有的zookeeper去删除了,再去创建我们新的:
我们把我们的zookeeper文件依次放到三个虚拟机上去。
zookeeper存放的目录是/usr/local。
然后我们要给剩余两个虚拟机配置zookeeper用户权限:
我们可以看到这个myid文件。
我们进去看看它里面写了什么内容:
这里有一个数字1,表示这是第一台虚拟机。
第二台虚拟机:
我们在这里输入数字2.
然后我们去给这个zookeeper赋予用户权限:
我们就可以看到它响应的服务权限。
同样的道理,我们也要给第三台虚拟机服务器做相关配置,这里就不做演示了。
那么现在我们三台zookeeper的配置基本上就完成了。
然后我们都使用su zookeeper命令切换到zookeeper用户:
然后在启动zookeeper之前,我们要去关闭防火墙,不然集群可能无法启动。
在真正的企业中出于安全考虑可能不会去直接关闭防火墙而是配置对应的端口。或者在使用阿里云服务器的时候,是配置安全组,那么我们这里是使用免费的vmware去学习的,那么我们就来关闭防火墙:
但是我们这里只有root用户才有权限去关闭防火墙,所以我们要先去切换到root用户:
我们另外两台虚拟机也需要关闭防火墙。
然后我们再用su zookeeper去把三台虚拟机的权限都设置成zookeeper。
我们可以看到我们这里有很多.cmd的文件,但是我们在linux环境下是使用.sh文件,所以我们三台虚拟机分别去删除掉.cmd文件:
然后所有的脚本我们都赋予它可执行的权限:
用*.sh。
然后我们就可以去启动我们的zkServer了:
其它两台服务器也都打开zookeeper。
然后我们去验证一下我们的集群有没有启动成功,我们随便找一台服务器:
这个路径我们要改一下。
记得关闭防火墙。
我们是可以看到他们的状态的。
如果一个服务通过kill 9关闭了。会重新进行选举。
我们现在把2号虚拟机关掉了。
我们发现我们的集群进行了重新选举,3号由follower变成leader了。
如果我们把3号也关了呢?
我们发现当我们关闭了两个服务以后,我们的第三个也无法启动了,这就证明了我们的zk集群至少要有一半的服务器是需要正常运行的。
到这部分为止,我们就能够去自己搭建zookeeper集群了。