下载地址:https://zookeeper.apache.org/releases.html

下载完成 看下他的目录结构

看到bin目录,我们应该自觉的点开进去看看,

看到有.sh、.cmd我们更应该自觉的知道,这里面可以在 windows环境下运行,也可以在linux环境运行。

到这里就够了,我们解压出来吧。

解压好了,我们自觉地启动那个名字 包含 server .cmd 的那个文件吧

此图像的alt属性为空;文件名为1610768676-78805a221a988e7.png

发现这玩意,他敢闪退,叫二营长,拉意大利炮拉来,

直接编辑他

此图像的alt属性为空;文件名为1610768741-78805a221a988e7-1024x346.png

内容@pause 这是 批处理命令中,程序执行完毕吗,不会里面结束,会告诉你:按任意键结束,你不按,窗口就不会关闭,这个时候,你就可以查看错误日志了。

此图像的alt属性为空;文件名为1610768908-78805a221a988e7.png

小逼崽子说,配置文件不对,那就配置一下配置文件呗

进入conf目录

此图像的alt属性为空;文件名为1610769252-78805a221a988e7.png

那个log4j.properties 做过Java 里面就知道是日志的配置文件,配置花里胡哨,跟程序运行,没直接关系,直接跳过。看zoo_sample.cfg 文件

此图像的alt属性为空;文件名为1610769143-78805a221a988e7.png

仔细发现 他找的是一个叫conf下面的一个叫zoo.cfg的文件,没有这个文件啊,这就需要凭借对其他软件的玩法积累出的思维了,之前搞PHP,就是,没有php.ini,怎么办,复制一份php-开发环境.ini 文件 改个名字 就有了php.ini了。这里估计是差不多滴,那试试?试试就逝世。

此图像的alt属性为空;文件名为1610769533-78805a221a988e7.png

文件有了,那就开始启动吧

zkServer.cmd

我当前版本没有出现Error ,默认他跑起来了。

但是现在好像不行,配置文件中有个 dataDir 没有此文件夹,因为是默认使用是在Linux中的自己创建一个,以绝对路径放上去吧

我是在conf文件夹同级目录创建的tmp

Windows 环境使用/tmp 和 \tmp不一样 因为 \t 会被识别制表符,所以导致找不到文件夹。

1.tickTime:Client-Server通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

2.initLimit:Leader-Follower初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5

3.syncLimit:Leader-Follower同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2

4.dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/home/michael/opt/zookeeper/data

5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181

6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B

server.1=itcast05:2888:3888
server.2=itcast06:2888:3888
server.3=itcast07:2888:3888

7.ZK为什么设置为奇数个?
zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2 -> 0; 3 -> 1; 4 - >1; 5 -> 2; 6 -> 2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤