0.简介
功能
a. watch事件监听(注册事件:让节点知道其他节点的状态变化)
b. 配置管理
c. 集群管理(注册中心 服务发现)
d. 分布式锁(通过临时顺序节点和事件监听实现 获取根节点的所有子节点->序号最小的节点占用锁 其他节点监听序号比自己小1号节点的删除事件->重新获取根节点的所有子节点数据->最小占用锁) (比redis可靠 比db快)⬑ 分布式锁实现原理
集群节点角色
1.Leader领导者: 处理事务请求 集群内部各服务器的调度者 2.Follower跟随者: 处理客户端非事务请求,转发事务请求给Leader服务器 参与Leader选举投票 3.Observer观察者: 处理客户端非事务请求,转发事务请求给Leader服务器
1.部署
绿色安装
sudo apt update sudo apt install openjdk-17-jdk -y #zk依赖于java环境 cd /data/apk/ wget https://mirrors.huaweicloud.com/openjdk/17.0.1/openjdk-17.0.1_linux-x64_bin.tar.gz wget https://repo.huaweicloud.com/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz sudo tar -zxvf /data/apk/apache-zookeeper-3.6.1-bin.tar.gz -C /data/svr cd /data/svr/apache-zookeeper-3.6.1-bin sudo mkdir data log cd /data/svr/apache-zookeeper-3.6.1-bin/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/data/svr/apache-zookeeper-3.6.1-bin/data dataLogDir=/data/svr/apache-zookeeper-3.6.1-bin/log maxClientCnxns=10000添加开机启动
sudo vim /etc/systemd/system/zookeeper.service [Unit] Description=Zookeeper Service After=network.target [Service] Type=forking User=root Group=root SyslogIdentifier=ZooKeeper Environment=ZHOME=/data/svr/apache-zookeeper-3.6.1-bin ExecStart=/data/svr/apache-zookeeper-3.6.1-bin/bin/zkServer.sh start ExecStop=/data/svr/apache-zookeeper-3.6.1-bin/bin/zkServer.sh stop ExecReload=/data/svr/apache-zookeeper-3.6.1-bin/bin/zkServer.sh restart [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload sudo systemctl enable zookeeper sudo systemctl start zookeeper
2.配置集群
vim /data/svr/apache-zookeeper-3.6.1-bin/data/myid
echo 1 >/data/svr/zookeeper-cluster/zookeeper1/data/myid echo 2 >/data/svr/zookeeper-cluster/zookeeper2/data/myid echo 3 >/data/svr/zookeeper-cluster/zookeeper3/data/myidvim /data/svr/apache-zookeeper-3.6.1-bin/conf/zoo.cfg
server.1=192.168.10.235:2881:3881 server.2=192.168.10.235:2881:3881 server.3=192.168.10.235:2881:3881
3.常用命令
服务器
sudo systemctl start zookeeper sudo systemctl restart zookeeper sudo systemctl stop zookeeper cd /data/svr/apache-zookeeper-3.6.1-bin/bin ./zkServer.sh status客户端
cd /data/svr/apache-zookeeper-3.6.1-bin/bin ./zkCli.sh help //查看命令 create /app1 data //创建节点&设置数据 create -e /app2 data //创建临时节点 终端断开节点消失 create -s /app3 data //创建顺序节点 节点带一个全局的单调增的数字 create -es /app2 data //创建临时顺序节点 delete /app1 //删除节点 deleteall /app1 //删除节点和该节点下的子节点 set /app1 data //设置节点数据 ls / //查看子节点 ls -s / //查看子节点&信息 get / //查看节点存的数据
文档更新时间: 2026-08-06 17:29 作者:morninglu
