Zookeeper入门

Zookeeper入门

  1. 集群角色

    1. leader:管理follower,处理所有事务请求(仅有一个)
    2. follower:选举leader,和数据的同步及获取
    3. observer:复制数据的同步及获取(需要配置生效)
  2. 配置环境变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #  进入zookeeper的bin目录
    cd /export/server/zookeeper/bin
    # 查看zookeeper状态
    。/zkServer.sh status


    # shell 脚本配置环境变量
    !#usr/bin bash

    echo 'export ZOOKEEPER_HOME=/export/server/zookeeper' >> /etc/profile
    echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile

    source /etc/profile
  3. 启动Zookeeper服务

    1
    2
    3
    4
    5
    6
    7
    8
    # 查看状态(最少启动两台才会显示角色相关信息)
    zkServer.sh status
    # 启动
    zkServer.sh start
    # jps 查看进程是否启动
    jps
    #停止
    zkServer.sh stop
  4. 使用zookeeper

    1
    2
    3
    4
    5
    # 连接zookeeper
    # 1、连接本地
    zkCli.sh
    # 2、连接其他节点
    zkCli.sh -server IP/域名/映射
    1. 常见操作命令

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      help	查看帮助信息
      ls 查看节点信息
      ls2 查看节点详细信息
      create [-e] 节点路径名 创建节点 ; -e表示临时节点 ;创建多级目录时,只能一级一级的创建
      get 节点路径名 获取节点内容
      set 节点路径名 修改后的值 修改节点
      delete 节点路径名 删除节点
      rmr 节点路径名 删除多层节点
      history 查看历史命令
      quit 退出
    2. 节点类型

      1. 永久节点:==不依赖与会话,只有客户端执行删除操作时才能删除;永久节点可以拥有子节点==

      2. 临时节点:==依赖与会话,会话结束自动删除;不允许有子节点==

      3. 节点属性:

        1. pZxid:事务ID
        2. ephemeralOwner:节点类型:永久节点0x0

        image-20230919170530411

      4. Watch监听机制

        1. 实现了发布、订阅功能

        2. 监听过程

          1. 客户端向服务器端注册Watcher
          2. 服务端事件发生触发Watcher
          3. 客户端回调Watcher得到触发事件
        3. 设置监听

          1
          2
          3
          4
          5
          6
          7
          8
          9
          # node1 开启zkServer
          zkServer.sh
          # node2 连接node1
          zkCli.sh -server node1
          # node3 连接node1
          zkCli.sh -server node1

          # node2\node3 设置监听
          get /节点名 watch
        4. 监听机制

          1. 先注册后触发
          2. 一次性触发
          3. 异步发送
          4. 通知内容:通知状态、事件类型、节点路径
      5. 选举机制

        1. 选举机制:过半原则

        2. 特殊情况

          1. 集群第一次启动

            1
            2
            follower同步投票,票数相同时,谁的myid大,谁就是leader
            如果已经有leader,后面加入的都是follower;不管myid有多大,除非leader宕机了
          2. leader宕机后,再次启动

            1
            leader宕机后,剩下的follower会进行选举,选出新的leader,开启新纪元