这篇主要分析leader的选择机制,zookeeper提供了三种方式:
默认的算法是FastLeaderElection,所以这篇主要分析它的选举机制。
目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动,它们的选择举过程如下:
?
2、zookeeper集群节点限制zookeeper遵从大多数原理,故要求奇数个节点,且至少三个 节点
?
3、集群版安装?集群版安装过程与单机版安装差不多,不同点如下:
在data目录下新建myid文件,内容就是服务器id(使用shell命令 echo 1 > myid)
配置文件新增内容如下
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
即server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口?
最后依次启动每个节点即可
附便携式一次性启动多个节点脚本
#!/bin/bash if?[?-z?$1?];then? echo?command?error,please?specify?start?or?stop?or?restart?or?status!? exit fi if?[?$1?==?start?]?||?[?$1?==?stop?]??||?[?$1?==?status?]?||?[?$1?==?restart?];then sh?./apache-zookeeper-3.5.6-bin-1/bin/zkServer.sh?$1 sh?./apache-zookeeper-3.5.6-bin-2/bin/zkServer.sh?$1 sh?./apache-zookeeper-3.5.6-bin-3/bin/zkServer.sh?$1 else echo?command?error,please?specify?start?or?stop?or?restart?or?status! fi
将其命名为clusterStart.sh,则使用命令sh?clusterStart.sh start可一键启动集群
原文:https://blog.51cto.com/u_14643435/2855243