上面一部分已经设计单例模式,Zookeeper服务器启动与连接,接下在Windows如何实现Zookeeper三台服务器集群使用。
1、Zookeeper with Quorums(Zookeeper集群)
首先你要理解,Zookeeper需要通过配置来启动服务器,涉及服务器无非是服务器地址和端口号,以及日志配置,以及区分不同服务器标志。
先我们查看一下zkServer.cmd里面写了什么内容,用记事本打开
在查看zkEnv.cmd文件
在查看conf文件,发现还有日志配置文件
以上我们了解Zookeeper服务器如何启动过程,需要设置文件,那么问题来,如果多个服务器启动了,服务器之间怎么知道对方是跟自己在一组,然后进行通讯呢?
这时候我们需要在xxx.cfg配置,每一个服务器有一份名单,服务器就知道了彼此了。
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
注意上面由于IP地址一样,所以通过端口进行区分
每个服务器都会产生数据,所以需要为每个服务器建立文件分开存储。
为了测试直接在bin目录创建三个文件夹,分别命名为z1,z2,z3
以z1为例看看里面是什么?
myid文件(注意没有后缀,有的电脑隐藏需要先取消隐藏。)
查看z1.cfg (log4j.properties不需要管直接从conf文件夹下复制即可)
z2内容类似,主要修改data目录myid为2,以及将z1.cfg改为z2.cfg,然后打开这个文件修改dataDir为
dataDir=D:/install/zookeeper-3.4.10/bin/z2/data,同时将clientPort=2182 (保证不一样)
z3内容类似,主要修改data目录myid为3,以及将z1.cfg改为z3.cfg,然后打开这个文件修改dataDir为
dataDir=D:/install/zookeeper-3.4.10/bin/z3/data, 同时将clientPort=2183
以上我们已经配置需要信息,现在需要配置zkServer.cmd 和zkEnv.cmd 为了方便也复制三份分别命名
zkServer1.cmd,zkServer2.cmd,zkServer3.cmd
zkEnv1.cmd ,zkEnv2.cmd ,zkEnv3.cmd
我们以zkServer1.cmd和zkEnv1.cmd为例看看需要修改那些内容
zkEnv1.cmd
对于zkServer2.cmd,zkServer3.cmd,zkEnv2.cmd ,zkEnv3.cmd类似操作,
把上面标记位置修改成对应数字(也就是文件名最后的数字),例如z1.cfg 改为 z2.cfg
终于配完了,开始运行,依次启动zkServer1.cmd、zkServer2.cmd,zkServer3.cmd
不要关闭上面窗口,继续新开启新窗口启动zkServer2.cmd
这时候我们已经有两个台启动,说明可以进行服务,它还会报错,不过没有关系,它已经可以向外提供服务。
也就是启动zkCli.cmd
在看一下zkServer1.cmd 窗口
以上实现Zookeeper多个服务器配置信息实现