Windows下Zookeeper安装使用
ZooKeeper是一种分布式协调服务,用于管理大型主机。 在分布式环境中协调和管理服务是一个复杂的过程。 ZooKeeper通过其简单的架构和API解决了这个问题。 ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。
文档地址:https://zookeeper.apache.org/doc/r3.6.2/index.html
下载安装Zookeeper
从官网下载Zookeeper:
下载:https://zookeeper.apache.org/releases.html
直接下载(不用选择平台):https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
单机启动
本地测试并不需要Zookeeper集群,简单简单作为单机安装即可:
- 解压apache-zookeeper-3.6.2-bin.tar.gz
- conf目录下的zoo_sample.cfg复制一份或者直接改名为zoo.cfg
- 执行bin/zkServer.cmd启动即可
集群启动
配置集群
这里以单机集群配置,zookeeper文件夹复制3份,修改zoo.cfg,添加集群配置
# 修改clientPort(2181,2182,2183),dataDir,按照路径,每个节点不一样
clientPort=2181
dataDir=E:/citsgbt-hotel/zookeeper_cluster/zookeeper/data
# 添加集群配置
server.0=localhost:2888:3888
server.1=localhost:2889:3889
server.2=localhost:2890:3890
在zookeeper根目录下建一个data目录,然后新建一个myid文件,根据服务器id分别写入0,1,2,和server.x对应:
0
启动集群
可以新建一个bat文件启动集群:
start call zookeeper/bin/zkServer.cmd
start call zookeeper1/bin/zkServer.cmd
start call zookeeper2/bin/zkServer.cmd
启动日志中有选举信息,LEADING或者FOLLOWING信息
2020-11-27 14:25:08,662 [myid:2] - INFO [QuorumPeer[myid=2](plain=[0:0:0:0:0:0:0:0]:2183)(secure=disabled):Leader@581] - LEADING - LEADER ELECTION TOOK - 279 MS
2020-11-27 14:25:08,739 [myid:1] - INFO [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2182)(secure=disabled):Follower@75] - FOLLOWING - LEADER ELECTION TOOK - 290 MS
测试:
zkCli.cmd -server localhost:2181
可以测试在任何节点set值,另外的节点可以获取到。
Zookeeper可视化客户端
查看zookeeper上的节点信息时,输命令很麻烦,可以使用一个常用的可视化的客户端。
ZooInspector
下载地址:
https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
解压后进入build目录执行命令
java -jar zookeeper-dev-ZooInspector.jar
然后就可以连接Zookeeper了:
PrettyZoo
ZooInspector这个是比较老的一个客户端了,而且似乎长时间不更新了。
这里还有国内开源的:PrettyZoo
PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Zookeeper 图形化管理客户端。
使用了 Java 的模块化(Jigsaw)技术,并基于 JPackage 打包了多平台的可运行文件(无需要额外安装 Java 运行时)。
目前已提供了 mac(dmg 文件)、Linux(deb 和 rpm 文件)、windows(msi 文件) 的安装包
下载地址:https://github.com/vran-dev/PrettyZoo/releases
选择对应的操作系统版本,安装之后就可以打开连接服务器了:
目前这些UI工具都比较简陋,对于Zookeeper的可视化需求一般也并不是很高,能浏览节点信息等基本功能就可以了。