目标
用三台机器搭建一个Zookeeper集群
新增myid文件
用于配置当前IP对应的编号。
可以查看/conf/zoo.cfg的dataDir路径,在该路径新增myid,内容就只协商对应的编号就行
1 | $ cat /tmp/zookeeper/myid |
编辑配置文件
vi /conf/zoo.cfg
在该配置文件下新增以下内容,每个服务器都需要增加
1 | server.1=10.99.85.70:2888:3888 |
说明:server.A=B:C:D
- A 是一个数字,就是myid里的那个数字,表示这个是第几号服务器
- B 是这个服务器的 ip 地址
- C 用来集群成员的信息交换以及与集群中的 Leader 服务器交换信息
- D 端口是在leader挂掉时专门用来进行选举Leader所用。
逐一启动服务
1 | $ bin/zkServer.sh start |
Leader选举情况
步骤一:
启动服务器1时,投票给自己,服务器1获得了1票,没达到半数
步骤二:
- 启动服务器2时,投票给自己,服务器2获得1票,没达到半数;
- 服务器1与2都是1票,重新发起投票;
- 2的服务器ID大于1,1会重新投票给2,2还是仍然投票给自己
- 服务器2获得了2票,达到半数,当选Leader