上篇说到linux环境下zookeeper单机环境搭建,这篇主要说明下zookeeper集群的搭建,因为随着业务的需求以及复杂性的不断提升,单机应用显然是达不到实际的需求,所以必须考虑集群。
单机环境搭建可以查看:https://blog.csdn.net/weixin_42558742/article/details/89052702
zookeeper集群环境搭建基本步骤
1、修改zoo.cfg配置文件
server.A=B:C:D
A:是一个数字,表示这个是第几号服务器,唯一标识符, 不允许重复,
B:是这个服务器的ip地址
C:Leader和follwer通信的端口号
D:Leader死掉之后,重新选举Leader,是follwer之间通信的端口号
集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有个数值就是A的值,Zookeeper在启动的时候会读取该文件,拿到里面的数据与zoo.cfg里卖弄的配置信息比较从而判断到底是哪个server
2、vim myid 输入对应的编号
3、其他几台服务器上配置重复第一步和第二部,注意myid不要弄错
4、启动zookeeper每个节点,查看节点状态可能会出现以下状况
出现这种问题要么就是配置没配置对,要么就是防火墙没有关闭,大部分原因应该是防火墙的原因
查看防火墙命令:service iptables status
启动防火墙命令:service iptable start
关闭防火墙命令:service iptables stop
关闭防火墙之后,在查看zookeeper节点状态
由上图可知,zookeeper集群的leader的选举是节点启动自动选举的,但选举的机制是什么,我们也不太清楚,查了以下,呈现在这块。
半数机制:集群中半数以上机器存活,集群可用,所以zookeeper适合装在奇数台机器上
选举过程:假设目前zookeeper集群由五个节点,第一个节点启动,半数以下,集群不可用,选举需要和其他节点通信,但其他节点还未启动,选举失败;第二个节点启动,第一节点投票给它,它投给自己(默认id谁大谁有优势),2票依然在半数以下集群不可用。第三个节点启动,第一第二节点投票给它,它投给自己,3票。半数以上集群可用,选举成功,第三个节点是Leader,一二节点为follwer,第四第五节点也将是follwer.
客户端测试:
随意启动一个zookeeper客户端,测试一些常用的命令
节点类型:
持久性节点:客户端和服务端断开连接后,创建的节点依旧存在
临时性节点:客户端和服务端断开连接后,创建的节点自动删除
1、创建节点
命令:create [-s] [-e] 目录 数据 (create /xuwei "哈哈") 默认是持久性节点,加上-e变成临时性节点
2、修改节点数据
命令:set path 数据(set /xuwei "nihao")
3、查看节点数据
命令:get path (get /xuwei)
4、删除一个节点(单级目录)
命令:delete path (delete /xuwei)
5、删除节点(目录下的所有节点都删除)
命令: rmr path