0.简介
  1. 功能
    a. watch事件监听(注册事件:让节点知道其他节点的状态变化)
    b. 配置管理
    c. 集群管理(注册中心 服务发现)
    d. 分布式锁(通过临时顺序节点和事件监听实现 获取根节点的所有子节点->序号最小的节点占用锁 其他节点监听序号比自己小1号节点的删除事件->重新获取根节点的所有子节点数据->最小占用锁) (比redis可靠 比db快)

    ⬑ 分布式锁实现原理
  2. 集群节点角色

    1.Leader领导者:
      处理事务请求
      集群内部各服务器的调度者
    2.Follower跟随者:
      处理客户端非事务请求,转发事务请求给Leader服务器
      参与Leader选举投票
    3.Observer观察者:
      处理客户端非事务请求,转发事务请求给Leader服务器
1.部署
  1. conn.ym-ubu24.6.zk&java

  2. 绿色安装

    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
  3. 添加开机启动

    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.target
    sudo systemctl daemon-reload
    sudo systemctl enable zookeeper
    sudo systemctl start zookeeper
2.配置集群
  1. 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/myid
  2. vim /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.常用命令
  1. 服务器

    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
  2. 客户端

    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