作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
前面我们介绍介绍了几个常用的代理服务器,本章节我们讲来讲解Zookeeper这个中间件。
ZooKeeper 是一个分布式协调服务,广泛应用于分布式系统的配置管理、命名服务、分布式锁等场景。本文将详细介绍 ZooKeeper 单机安装和集群安装的步骤。
一、准备工作
1.JDK环境准备
由于Zookeeper是基于Java语言,所以我们需要准备JDK环境,这里实际上和我们前面讲解的Web服务器-Tomcat类似。
yum -y install java-1.8.0-openjdk
[root@localhost ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
2.ZooKeeper软件包准备
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz
mv apache-zookeeper-3.8.1-bin /opt/zookeeper
二、单机模式安装
#当然这里并没有修改任何配置
#正常使用至少要修改数据存储路径
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
#启动单机版
[root@localhost conf]# ../bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#检查服务状态,standalone是单机版
[root@localhost conf]# ../bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone
#链接zk
[root@localhost conf]# ../bin/zkCli.sh
/usr/bin/java
Connecting to localhost:2181
#省略部分信息
Welcome to ZooKeeper!
JLine support is enabled
2025-04-16 23:51:35,611 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):o.a.z.ClientCnxn$SendThread@1452] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x1000079454f0000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1]
三、集群模式安装(以 3 节点为例)
步骤 1:配置所有节点修改每台服务器的 zoo.cfg
这里实际建议是hosts方式,避免使用直接使用ip地址。
server.x
: 节点唯一 ID,需与myid
文件一致。2888
: 节点间数据同步端口。3888
: 选举通信端口。
步骤 2:创建 myid
文件
由于默认的数据目录是在/tmp/zookeeper,所以这里我还是使用这个路径。需要提前创建数据目录。
#在140执行
echo 1 > /tmp/zookeeper/myid
#在141执行
echo 2 > /tmp/zookeeper/myid
#在142执行
echo 3 > /tmp/zookeeper/myid
步骤3 :启动集群
在所有节点启动 ZooKeeper
cd /opt/zookeeper/bin ./zkServer.sh start
步骤4: 检查集群状态
cd /opt/zookeeper/bin ./zkServer.sh status
正常三节点应该是1个leader,2个follower,这个时候集群就算搭建成功。
[root@localhost conf]# ../bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
这样我们就启动了一个三节点的Zookeeper集群。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。