Zookpeer集群节点

时间:2022-01-19 18:44:49

Adaptive Communication Environment(自适配通信环境),简称ACE。

reference artfile:zookeeper单节点与集群的安装https://blog.csdn.net/xfz0330/article/details/52434237

5分钟让你了解 ZooKeeper 的功能和原理https://blog.csdn.net/weijifeng_/article/details/79775738

download url: https://zookeeper.apache.org/

zookpeer介绍:

zookpeer有个集群角色,leader,follower,observer。只能有一个leader。

※注意:tar.gz实质也就是zip文件,一般也是可以在windows上使用的。下载解压即可。

1. 配置环境变量

ZK_HOME=文件解压地址

Path添加  %ZK_HOME%\bin;

2. 创建配置文件

创建data文件夹和logs文件夹

将conf下的zoo_sample.cfg文件,复制修改为zoo.cfg

添加:

dataDir=D:\\workspace_canal\\zookeeper-3.4.\\data
dataLogDir=D:\\workspace_canal\\zookeeper-3.4.\\logs
server.=127.0.0.1::

注意要为\\双反斜杠,在集群时,会在java程序中查找myid,因此如果是单\则会使得文件夹之间的分隔符丢失。

错误: Caused by: java.lang.IllegalArgumentException: D:workspace_canalzookeeper-3.4.10data\myid file is missing

在data文件夹下创建myid文件。内容设置为 1,表示serverID为1.

3. 启动

》zkServer.cmd

错误:启动一闪而过

※ 如果启动一闪而退,说明有问题,需要在cmd文件中添加pause,查看错误内容。

错误1:看到控制台输出call 时有这样一个调用:"C:\Program Files\Java\jdk1.8.0_172\"\bin\java  ***

说明JAVA的拼接出了问题需要修正zkEnv.cmd中修改为正确的java地址去掉引号。

错误2:再次运行发现依然报错,'C:\Program' 不是内部或外部命令,也不是可运行的程序。

说明 空格符将path给拆了导致。

从以上两个错误可知,我们是想让“”包括住所有

set JAVA="%JAVA_HOME%\bin\java"

再次启动,一切正常。

》netstat -aon|findstr "2181"  端口已正常监听

点击 zkCli.cmd发现也已经可以对联上2181端口了。

集群布置:

集群最少需要3个ip或者端口,在这里创建3个端口来测试。

将zoo.cfg再添加两个server.2,3

server.=127.0.0.1::
server.=127.0.0.1::
server.=127.0.0.1::

建立data2,data3文件夹,并修改myid为对应的号。

将zoo.cfg 复制两份同时

1.  修改端口号

2.  修改data

更名为zoo2.cfg,zoo3.cfg。

致此,zoo的集群就算是配置好了。

启动:

因 windows下 的zoo.cfg是固定被获取的,因此需要修改 zkEnv.cfg

将其设为输入配置名称。

set /p zooname=请输入zoo配置名称:zoo.cfg
set ZOOCFG=%ZOOCFGDIR%\%zooname%

启动zkServer.cmd:配置用zoo.cfg

启动zkServer.cmd:配置用zoo2.cfg

启动zkServer.cmd:配置用zoo3.cfg

这样3个集群就全部起来了,在启动第一个时他会侦查第二个和第三个的IP地址,因还没启动会报错,不用管,那几个全部起来后就没错误了。

------------------------------------

也可将zookeeper应用复制多份来做集群,做法一样。

此时集群就算是完成了。

启动错误:

Unable to load database on disk
java.io.IOException: Unreasonable length = 1048583

解决办法:进入zkdata目录删除version-2下面的所有文件,还有bin\workspace_canalzookeeper-3.4.10logs,还有logs文件的内容都删除。