书接上文,第一篇介绍的是zk单机的搭建,今天就以上一篇为基础来搭建一个伪集群,之所以成为伪集群是因为我只有一台linux服务器(配置三台,第一台在第一篇文章已配置)
我们按照第一篇文章介绍的将zk的tar包解压出另外两个zk分别命名为zookeeper-3.5.7.2和zookeeper-3.5.7.3,所以我们现在就有了三台zk,如下图:
首先我们登录第一台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:
zookeeper-3.5.7.3:
切记配置文件中的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的进程:
当然也可以通过命令来查看我们当台服务器是属于leader还是follower
总结:
三台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