书接上文,第一篇介绍的是zk单机的搭建,今天就以上一篇为基础来搭建一个伪集群,之所以成为伪集群是因为我只有一台linux服务器(配置三台,第一台在第一篇文章已配置)

我们按照第一篇文章介绍的将zk的tar包解压出另外两个zk分别命名为zookeeper-3.5.7.2和zookeeper-3.5.7.3,所以我们现在就有了三台zk,如下图:

linux环境安装zookeeper(二)伪集群的搭建_linux

   首先我们登录第一台zookeeper-3.5.7在zkData里面通过vim myid创建myid文件在里面写入数字1

然后登录zookeeper-3.5.7.2里面将配置文件修改为zoo.cfg,然后创建myData文件夹,在里面创建myid并写入数字2,zookeeper-3.5.7.3同上写入数字3

然后修改对应的dataDir路径:

zookeeper-3.5.7.2:

linux环境安装zookeeper(二)伪集群的搭建_linux_02

zookeeper-3.5.7.3:

linux环境安装zookeeper(二)伪集群的搭建_分布式_03

切记配置文件中的clientport要修一下,三台修改分别为2181、2182、2183

然后在三个配置文件都加入下面一段配置:(集群模式这样配置的)

server.1=ip:2888:3888
server.2=ip:2888:3888
server.3=ip:2888:3888

我们这里是伪集群配置,要保证下面C和D都各不相同才可以哦:

server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

当然ip你要换成你自己的具体ip,这个模式:server.A=B:C:D

A:就是配置的myid的值;

B:是这个服务器的地址;

C:是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;

D:是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

其中C和D的端口号我们自己指定即可(阿里云记得开放端口哦

然后分别启动三台zk的server:

zk常用命令:

  • 启动服务:(./就等于sh)
./zkServer.sh start
  • 停止服务:
./zkServer.sh stop
  • 重启服务
./zkServer.sh restart
  • 执行状态
./zkServer.sh status

都启动之后可以看到三个zk的进程:

linux环境安装zookeeper(二)伪集群的搭建_linux_04

当然也可以通过命令来查看我们当台服务器是属于leader还是follower

linux环境安装zookeeper(二)伪集群的搭建_java_05

总结:

三台zk路径分别为:

  • /root/zookeeper-3.5.7
  • /root/zookeeper-3.5.7.2
  • /root/zookeeper-3.5.7.3

三台dataDir的路径分别为:

  • /root/zookeeper-3.5.7/zkData
  • /root/zookeeper-3.5.7.2/zkData
  • /root/zookeeper-3.5.7.3/zkData

三台myid路经分别为:

  • /root/zookeeper-3.5.7/zkData/myid ------1
  • /root/zookeeper-3.5.7.2/zkData/myid------2
  • /root/zookeeper-3.5.7.3/zkData/myid------3