因为最近项目中涉及zookeeper.所以自己先搭建了一个demo集群来了解下zookeeper的工作流程和场景使用。
关于流程搭建,大家可以百度下zookeeper集群搭建。
我推荐用下面这个作者的流程来搭建的,我觉得他讲的挺明白的。
我这篇文档的意义在于:记录下容易被忽略的问题,帮助我自己和大家。
给大家个链接教程:https://www.cnblogs.com/jxwch/p/6433310.html
开始吧!
一、原材料: zookeeper: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 。这是清华镜像站的,比较稳定。
关键点1 :选最新的版本,下载带bin的包,也就是可以运行的二进制包!!
二、因为我自己没有三台实体的机子,所以,我使用了自己的笔记本加上不同的端口来模拟集群的效果。所以,把包下载后,我分别解压到了不同的三个目录:
建议不要保留原有的目录名apache-zookeeper-***。这个太长了不太好记,建议/server*/下就是bin等目录。
这是我的目录
D:\software\zookeeper\server1\
D:\software\zookeeper\server2\
D:\software\zookeeper\server3\
接下来,分别创建zoo.cfg的配置文件。也就是在每个server下的conf目录中创建一个zoo.cfg文件。黑色部分要自己修改。
zoo.cfg文件内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\software\\zookeeper\\server1 #不同的server需要改名 分隔符用双反斜杠
dataLogDir=D:\\software\\zookeeper\\server1\\log #同上
clientPort=2181 #port也需要不同 类推即可
server.1= 127.0.0.1:2888:3888
server.2= 127.0.0.1:2889:3889
server.3= 127.0.0.1:2890:3890
#server.A=B:C:D 其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。
关键点三、配置dataDir=software\\zookepper\\server* 中,windows下必须用 双反斜杠 \\ 表示分隔符。因为zookeeper是java编写的,所以不同于Linux,它需要转义。
关键点四、dataurl和logdataUrl不能相同。zk会进行日志同步时间过长时,就有可能无法响应外部请求,变成假死!
在三个服务没有全部运行的时候,先运行的机器会出现connection refuced情况。都启动了就可以正常使用了。
检测方法:可以新建cmd窗口 输入 jps 查看是否出现进程。
接下来我们就可以使用 每个server中的zkcli.cmd进行服务调用了。
enjoy!
有问题可在评论回复。