zookeeper伪集群搭建与zookeeper中选举leader和follower的理解

搭建zookeeper伪集群:

        第一步:先把先配置linux环境,配置jdk,此步略。。

        第二步:把zookeeper压缩文件上传到linux中

                        在Xshell中连接主机后

                                        zookeeper伪集群搭建与zookeeper中选举leader和follower的理解_第1张图片

                这个时候说明已经发送成功了:

                                    zookeeper伪集群搭建与zookeeper中选举leader和follower的理解_第2张图片

                然后开始解压: 

                                      

                解压后:    

                                    

               

                第三步:在zookeeper中创建一个目录 data 

                          

                            将conf目录下zoo_sample.cfg文件更名为 zoo.cfg


               第四步:创建一个目录, 

                                    

                        把zookeeper-3.4.6文件复制到创建的目录下并起名为zookeeper-1,2,3

                                    zookeeper伪集群搭建与zookeeper中选举leader和follower的理解_第3张图片

            第五步:配置zoo.cfg文件,使用 vim zoo.cfg进入编辑页面中,

                                    zookeeper伪集群搭建与zookeeper中选举leader和follower的理解_第4张图片

                                    其中下面 三行中  前面是主机ip地址。后面两个是端口号,用来通信用的。

                            在data目录下创建myid文件,为每个服务器创建自己的id

                                    

                                      查看id:

              第六步:启动每个服务

                            进入bin目录下

                                     zookeeper伪集群搭建与zookeeper中选举leader和follower的理解_第5张图片

                                    执行./zkServer.sh start

                                    出现上面情况就ok

                                    依照上面进入每个server的bin中启动,即可

            第七步:查看状态:

                        Server1的

                            

                      Server3的

                                      

                    Server2的

                            

      为什么server2成为leader呢?

                    是因为zookeeper中算法是基于选举制的,意思是当得票数超过半数以上时,成为Leader,其他成为Follower。

                    比如我们的这三个服务器分别是A,B,C

                    1.我们依次启动A   ->  B  ->  C

                    2.启动A时,A会给自己投票,然后会把信息发送给其他服务器,但是现在就A一个服务器,无法通信,

                                所以A会处于Looking状态

                    3.启动B时,B会给自己投票,因为B的id为2,权重比A大,所以B成为老大,但是此时投票数超过半数

                                所以B成为Leader。

                    4.启动C时,C给自己投票,C权重比A和B都大,但是这个时候B已经成为Leader,所以C只能成为Follower,A和C

                                成为Follower

                

                  如果还有  D,E服务器时,这个时候就是5个服务器,当运行到C时,C权重大,成为老大,投票数超过半数

                    成为Leader, 虽然D,E服务器ID(权重)比C大,但是由于C已经成为Leader,那么DE只能被迫

                                成为Follower,前提是:C比DE先启动。






                            

你可能感兴趣的:(zookeeper伪集群搭建与zookeeper中选举leader和follower的理解)