![](https://www.zanglikun.com/wp-content/uploads/2022/07/20220710052348805.png)
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610961068-78805a221a988e7.png)
从官网下载 Zookeeper 不要从github下载 https://zookeeper.apache.org/
先去下载:切记是 名字中含有bin的 文件,不然 你启动不了!
当前是windows环境。
解压好了,我们自觉地启动那个名字 包含 server .cmd 的那个文件吧
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610768676-78805a221a988e7.png)
发现这玩意,他敢闪退,叫二营长,拉意大利炮拉来,
直接编辑他
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610768741-78805a221a988e7.png)
内容@pause 这是 批处理命令中,程序执行完毕吗,不会里面结束,会告诉你:按任意键结束,你不按,窗口就不会关闭,这个时候,你就可以查看错误日志了。
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610768908-78805a221a988e7.png)
小逼崽子说,配置文件不对,那就配置一下配置文件呗
进入conf目录
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610769252-78805a221a988e7.png)
仔细发现 他找的是一个叫conf下面的一个叫zoo.fig的文件,没有这个文件啊,这就需要凭借对其他软件的玩法积累出的思维了,之前搞PHP,就是,没有php.ini,怎么办,复制一份php-开发环境.ini 文件 改个名字 就有了php.ini了。这里估计是差不多滴,那试试?试试就逝世。
复制一根 zoo_sample.cfg 并命名为 zoo.cfg
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610769533-78805a221a988e7.png)
再次启动呗
那个log4j 的 做过Java 里面就知道是日志,配置花里胡哨,跟程序运行,没直接关系,直接跳过。看zoo_sample.cfg 文件
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610769143-78805a221a988e7.png)
将那个tmp位置改改 就可以启动单体项目了。
然后 去bin目录下 用脚本程序启动吧。
启动
windows
- 直接启动就行 双击 zkServer.cmd 但是不能-s 或者status,就是报错。
linux中
文件授权
zookeeper 小心被占用端口是8080,所以 dubbo-admin在tomcat 切换为别的端口,然后启动!!!
./zkServer.sh start
查看状态
./zkServer.sh status
命令输错 提示信息
Usage: ./zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd}
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610960660-78805a221a988e7.png)
启动失败的去看下日志
![](https://www.zanglikun.com/wp-content/uploads/2021/01/1610960731-78805a221a988e7.png)
自行排查,如果不确定是否启动 可以
lsof -i:2181
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博客搜索:标题关键字。以获取全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤
评论(0)