跳至主要內容

zookeeper安装

知识库集成配置SpringBootSpringBoot大约 4 分钟

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper 是以 Fast Paxos 算法为基础,实现同步服务,配置维护和命名服务等分布式应用。

Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。核心词就是一个,协调。

官网地址:http://www.apache.org/dyn/closer.cgi/zookeeper/open in new window

zookeeper 下载

# 下载源码文件
wget -c https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
#wget -c https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
#wget -c http://archive.apache.org/dist/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
#wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
# 解压
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz -C /usr/src/

# 配置文件,可修改端口号
cp /usr/src/apache-zookeeper-3.6.2-bin/conf/zoo_sample.cfg /usr/src/apache-zookeeper-3.6.2-bin/conf/zoo.cfg

# 配置文件的字段说明
cat >> /usr/src/apache-zookeeper-3.6.2-bin/conf/zoo.cfg << EOF
# tickTime:CS通信心跳数
# Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

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

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

# dataDir:数据文件目录 Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/usr/src/apache-zookeeper-3.6.2-bin/data

# dataLogDir:日志文件目录 Zookeeper保存日志文件的目录。
dataLogDir=/usr/src/apache-zookeeper-3.6.2-bin/logs

# clientPort:客户端连接端口
clientPort=2181
EOF

ZooKeeper 单机模式

# 后台启动zk|前台启动zk(以便查看服务器进程的输出日志)|停止|重启|状态
cd /usr/src/apache-zookeeper-3.6.2-bin/bin && ./zkServer.sh start|start-foreground|stop|restart|status
# 客户端连接
cd /usr/src/apache-zookeeper-3.6.2-bin/bin && ./zkCli.sh -server 127.0.0.1:2181

# 帮助文档
help
# 查看指定路径下包含的节点
ls /
# 创建节点数据
create /zk myData
# 查看节点zk的数据内容
get /zk
# 设置节点zk的内容
set /zk "anotherData"
# 删除节点zk
delete /zk
# 推出客户端
quit

使用 nc 来向 zk 发送 4 字母命令

yum install -y nc
# 使用nc来向zk发送4字母命令
echo conf | nc 127.0.0.1 2181
命令描述
confzk 服务配置的详细信息
stat客户端与 zk 连接的简要信息
srvrzk 服务的详细信息
cons客户端与 zk 连接的详细信息
mntrzk 服务目前的性能状况
wchswatch 的简要信息
wchcwatch 的详细信息,客户端 -> watch 的映射,线上环境要小心使用
wchpwatch 的详细信息, znode -> 客户端的映射,线上环境要小心使用

zookeeper 集群模式

单机模式的 zk 进程虽然便于开发与测试,但并不适合在生产环境使用。在生产环境下,我们需要使用集群模式来对 zk 进行部署。

在集群模式下,建议至少部署 3 个 zk 进程,或者部署奇数个 zk 进程。

# 预先准备三个zookeeper
#/usr/src/zookeeper-3.6.2-2181/
#/usr/src/zookeeper-3.6.2-2182/
#/usr/src/zookeeper-3.6.2-2183/

cat >> /usr/src/zookeeper-3.6.2-2181/conf/zoo.cfg << EOF
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/usr/src/zookeeper-3.6.2-2181/data
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
EOF
cat >> /usr/src/zookeeper-3.6.2-2182/conf/zoo.cfg << EOF
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/usr/src/zookeeper-3.6.2-2181/data
clientPort=2182
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
EOF
cat >> /usr/src/zookeeper-3.6.2-2183/conf/zoo.cfg << EOF
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/usr/src/zookeeper-3.6.2-2181/data
clientPort=2183
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
EOF

# 这个文件在dataDir 目录下,对应的配置文件的server
rm -rf /usr/src/zookeeper-3.6.2-2181/data/myid && echo "1" >> /usr/src/zookeeper-3.6.2-2181/data/myid
rm -rf /usr/src/zookeeper-3.6.2-2182/data/myid && echo "2" >> /usr/src/zookeeper-3.6.2-2182/data/myid
rm -rf /usr/src/zookeeper-3.6.2-2183/data/myid && echo "3" >> /usr/src/zookeeper-3.6.2-2183/data/myid

cd /usr/src/zookeeper-3.6.2-2181/bin && ./zkServer.sh start
cd /usr/src/zookeeper-3.6.2-2182/bin && ./zkServer.sh start
cd /usr/src/zookeeper-3.6.2-2183/bin && ./zkServer.sh start

# 客户端连接zk集群
cd /usr/src/zookeeper-3.6.2-2181/bin && ./zkCli.sh -server 192.16.18.101:2181,192.16.18.101:2182,192.16.18.101:2183

zookeeper 可视化工具(服务器推荐)

# 下载源码
git clone https://github.com/DeemOpen/zkui.git
cd zkui
# 打包
mvn clean package -DskipTests=true
# 配置文件config.cfg需要和jar放到同一目录
cp ./target/*.jar .
# java运行
nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &

# 访问http://localhost:9090
# Please login using admin/manager or appconfig/appconfig.

windows 客户端(推荐)

下载地址:https://github.com/HelloKittyNII/ZooVieweropen in new window

将下载的 zooview.zip 解压。

鼠标双击 startup.bat 进行启动

输入 zookeeper 连接:192.16.18.101:2181

windows 客户端

下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zipopen in new window

java -jar ZooInspector\build\zookeeper-dev-ZooInspector.jar