1. ZooKeeper介绍
ZooKeeper是一个高性能的分布式应用协调服务,由雅虎创建并贡献给了Apache组织,它的目标是为分布式应用提供一个高效可靠的协调服务。通过ZooKeeper,您可以完成分布式应用程序以下任务:
- 配置维护
- 命名服务
- 分布式同步
- 组服务
- 分布式通知/协调
以下是一些常见的单点故障问题,例如网络问题、服务器故障、软件/硬件升级或配置更改等,这些问题将导致应用程序出现错误。实现这些操作需要时间和复杂性,并会影响应用程序的可靠性。使用ZooKeeper,可将这些操作外包给一个专门的协调节点,减轻了应用程序,这些任务将由ZooKeeper协调服务完成。
2. ZooKeeper安装
2.1 下载ZooKeeper
要获得ZooKeeper,请访问其官方网站https://zookeeper.apache.org/下载最新的ZooKeeper发行版,或从GitHub上的源代码仓库中获取。
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
2.2 安装ZooKeeper
将下载好的文件安装到所需目录
tar -zxf zookeeper-3.4.13.tar.gz
mv zookeeper-3.4.13 /usr/local/zookeeper
3. ZooKeeper快速入门
首先进入ZooKeeper的bin目录,然后启动ZooKeeper服务
cd /usr/local/zookeeper/bin/
./zkServer.sh start
输入命令后,您应该看到该命令输出与下面类似的东西:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper server
/home/fanjie/wd_app/prod/zookeeper/pid/zookeeper_server.pid
您可以通过以下命令检查ZooKeeper是否正在运行:
echo stat | nc 127.0.0.1 2181
如果输出结果为如下内容,则说明ZooKeeper已经启动成功:
Connecting to localhost:2181
ImaInfraVersion: 0
Mode: standalone
Sessions:...
使用以下命令停止ZooKeeper服务:
./zkServer.sh stop
4. ZooKeeper常用命令
4.1 ZooKeeper状态
检查ZooKeeper服务器状态,通过telnet到符合mode标准所定义的客户端端口。
echo stat | nc 127.0.0.1 2181
4.2 查看Znode
您可以查看所有Znodes的树形结构:
./zkCli.sh -server 127.0.0.1:2181
ls /
4.3 创建新的Znode
您可以通过以下命令向新建约定节点/新建节点:
create /zk_test 123456
通过ls命令可以看到新建Znode:
ls /
4.4 获取Znode数据
通过命令get获取节点数据:
get /zk_test
4.5 设置Znode数据
您可以通过以下命令操作Znode数据:
set /zk_test 2022
get /zk_test
4.6 查看ZooKeeper哪个客户端正在访问ZooKeeper
您可以让ZooKeeper服务器打印已连接客户端列表:
echo cons | nc 127.0.0.1 2181
5. 结束语
ZooKeeper是一种高性能的分布式应用协调服务,由于其强大的功能,是分布式系统重要的支柱。随着分布式计算的进一步普及,将看到更多的应用程序使用ZooKeeper。在学习ZooKeeper之后,您将具备运用Zookeeper协调服务的能力。