发布:2022/6/17 16:25:27作者:管理员 来源:本站 浏览次数:1294
ZooKeeper 是分布式应用程序的高性能协调服务。它在一个简单的界面中公开了常用服务,例如命名、配置管理、同步和组服务,因此可以不必从头开始编写它们。可以现成地使用它来实现共识、组管理、领导者选举和存在协议,也可以根据自己的特定需求在此基础上进行构建。
可以在Zookeper官网下载页下载zookeeper,这里有最新的zk发布包。我这里下载是3.6.3版本,是截止到这篇博文发布前最稳定版本,下载链接为https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
下载完成之后解压下载的压缩包到自己电脑盘符下,我这里是在D:\zookeeper下解压的,解压后根目录为D:\zookeeper\zookeeper-3.6.3
解压后进入conf文件夹下面,把zoo_sample.cfg复制一份并改名为zoo.cfg,zoo.cfg是zookeeper配置文件入口。
在根目录下新建一个data文件夹,用于存储内存数据库快照, 修改配置文件,将dataDir属性修改为自定义的data路径下,dataDir=D:/zookeeper/zookeeper-3.6.3/data,「注意」:路径分隔符要用反斜杠 「/」这样配置就基本结束了,接下来就是启动了,启动分为两种,单机版和集群版
zookeeper的启动命令都在bin目录下,进入bin目录下,*.cmd是Windows版本的命令,*.sh 是Linux的命令。找到zkServer.cmd,
双击启动,看到如下窗口,不闪退,不报错就是启动成功了也可以通过,双击客户端zkCli.cmd批处理命令来验证server是否启动成功。看到如下红框的内容则server启动成功或者在配置文件中开启日志审核功能,audit.enable=true在根目录下的logs文件夹下找到zookeeper_audit.log文件,看到如下结果则server启动成功审核日志是3.6.0 中的新功能:默认情况下禁用审核日志。设置为“true”以启用它,有关日志审核可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAuditLogs.html
这样,单机版就完成了。
集群版就像对麻烦一点了,这里的集群还是伪集群,真正实现集群的操作跟单机版的伪集群差不多,只不过是操作不同的服务器而已。步骤如下:
# 集群配置 server.1=localhost:2888:3888 server.2=localhost:2889:3889 server.3=localhost:2890:3890
配置介绍:集群配置节点是server.id=host:port1:port2形式,id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间host:zookeeper所在服务器的IPport1:Zookeeper服务器之间的通信端口port2:Leader选举的端口从 ZooKeeper 3.6.0 开始,可以为每个 ZooKeeper 服务器 指定多个地址形如:
server.1=zoo1-net1:2888:3888|zoo1-net2:2889:3889 server.2=zoo2-net1:2888:3888|zoo2-net2:2889:3889 server.3=zoo3-net1:2888:3888|zoo3-net2:2889:3889
添加myid文件myid文件代表着该zookeeper服务器的id文件,内容也很简单,就是一个名为myid的文件,文件内容就只有一个上面所说的id。在Windows系统中,创建一个名为myid的文本文件,然后输入一个id,最后删除文件后缀,不要任何后缀,否则会启动会报myid找不到异常。myid文件所在的路径就是配置文件中dataDir指定的路径下。
集群复制多份,将上述配置好的zookeeper复制两份,并修改每个配置文件中的clientPort、dataDir和admin.serverPort属性,还有myid中的数值。clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。admin.serverPort:嵌入式 Jetty 服务器监听的端口,默认为 8080。AdminServer是3.5.0 中新添加的功能,更多可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAdmin.html#sc_adminserver
配置文件:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=D:/zookeeper/zookeeper-3.6.3/data dataLogDir=D:/zookeeper/zookeeper-3.6.3/logs clientPort=2181 maxClientCnxns=60 # 嵌入式 Jetty 服务器监听的端口。默认为 8080 admin.serverPort=8081 messageTracker.Enabled=true # 日志审核 audit.enable=true # 集群配置 server.1=localhost:2888:3888 server.2=localhost:2889:3889 server.3=localhost:2890:3890
2022-02-10 16:55:41,612 [myid:1] - INFO [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast 2022-02-10 16:55:49,084 [myid:3] - INFO [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2183)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast
或者
2022-02-10 16:55:41,611 [myid:2] - INFO [QuorumPeer[myid=2](plain=[0:0:0:0:0:0:0:0]:2182)(secure=disabled):QuorumPeer@864] - Peer state changed: leading - broadcast
可以看到三个zookeeper服务器,一个leader,两个following。
更多配置请查看官网
能力一般,水平有限,如有错误,请多指出。如果对你有用点个关注给个赞呗更多文章可以关注一下我的微信公众号suncodernote
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4