ZooKeeper——伪集群

生产环境下的zookeeper应该采用服务器集群,但是我没那么多台机器,只好在一台机器上部署多个zookeeper实例来模拟集群。本文以3个zookeeper实例集群为例。

1.首先创建在conf目录下复制出3个配置文件

    zoo1.cfg

tickTime=2000
dataDir=/home/lan/server1/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2887:3887
server.3=127.0.0.1:2886:3886

     zoo2.cfg

tickTime=2000
dataDir=/home/lan/server2/zookeeper
clientPort=2182
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2887:3887
server.3=127.0.0.1:2886:3886

 

     zoo3.cfg

tickTime=2000
dataDir=/home/lan/server3/zookeeper
clientPort=2183
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2887:3887
server.3=127.0.0.1:2886:3886

 

 2.在dataDir下创建myid文件,文件内容server.x中的x

第一个实例中在/home/lan/server1/zookeeper/myid文件中输入1

第二个实例中在/home/lan/server2/zookeeper/myid文件中输入2

第三个实例中在/home/lan/server3/zookeeper/myid文件中输入3

 

3.启动三个实例

bin/zkServer.sh start zoo1.cfg

bin/zkServer.sh start zoo2.cfg

bin/zkServer.sh start zoo3.cfg

 

4.查看三个实例的状态

ZooKeeper——伪集群_第1张图片
由截图可以看出第二个实例被选为了leader

 

5.停止第二个实例(leader),可以看出第三个实例被选为leader了
ZooKeeper——伪集群_第2张图片

 

6.重新启动第二个实例,第二个实例重新加入集群,但变为follower
ZooKeeper——伪集群_第3张图片


 7.在某个实例上创建数据,在其余两个实例中获取数据
ZooKeeper——伪集群_第4张图片
 
 

你可能感兴趣的:(ZooKeeper,zookeeper)