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%in;
2. 创建配置文件
创建data文件夹和logs文件夹
将conf下的zoo_sample.cfg文件,复制修改为zoo.cfg
添加:
dataDir=D:\workspace_canal\zookeeper-3.4.10\data dataLogDir=D:\workspace_canal\zookeeper-3.4.10\logs server.1=127.0.0.1:2888:3888
注意要为\双反斜杠,在集群时,会在java程序中查找myid,因此如果是单则会使得文件夹之间的分隔符丢失。
错误: Caused by: java.lang.IllegalArgumentException: D:workspace_canalzookeeper-3.4.10datamyid file is missing
在data文件夹下创建myid文件。内容设置为 1,表示serverID为1.
3. 启动
》zkServer.cmd
错误:启动一闪而过
※ 如果启动一闪而退,说明有问题,需要在cmd文件中添加pause,查看错误内容。
错误1:看到控制台输出call 时有这样一个调用:"C:Program FilesJavajdk1.8.0_172"injava ***
说明JAVA的拼接出了问题需要修正zkEnv.cmd中修改为正确的java地址去掉引号。
错误2:再次运行发现依然报错,'C:Program' 不是内部或外部命令,也不是可运行的程序。
说明 空格符将path给拆了导致。
从以上两个错误可知,我们是想让“”包括住所有
set JAVA="%JAVA_HOME%injava"
再次启动,一切正常。
》netstat -aon|findstr "2181" 端口已正常监听
点击 zkCli.cmd发现也已经可以对联上2181端口了。
集群布置:
集群最少需要3个ip或者端口,在这里创建3个端口来测试。
将zoo.cfg再添加两个server.2,3
server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890
建立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下面的所有文件,还有binworkspace_canalzookeeper-3.4.10logs,还有logs文件的内容都删除。