1.zookeeper概述

  1. Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。Hadoop、Storm、消息中间件、RPC服务框架、分布式数据库同步系统,这些都是Zookeeper的应用场景。
  2. zookeeper的基本单位是节点,节点可以有子节点
  3. zookeeper的端口号:2181

2.zookeeper的配置

  • 上传Zookeeper安装包至 /usr/local/soft/ 目录中
  • 解压安装包
  1. tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
  2. #修改文件名
  3. mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7
  • 修改配置文件
  1. # 修改zoo.cfg conf目录下
  2. mv zoo_sample.cfg zoo.cfg
  3. # zoo.cfg 配置文件修改
  4. dataDir=/usr/local/soft/zookeeper-3.5.7/data
  5. # zoo.cfg 配置文件添加
  6. server.0=master:2888:3888
  7. server.1=node1:2888:3888
  8. server.2=node2:2888:3888
  • 创建data目录
  1. # 在zookeeper-3.5.7目录下
  2. mkdir /usr/local/soft/zookeeper-3.5.7/data
  • 在data目录中添加myid并且根据配置文件中的server添加对于的编号
  • 分发目录到其他节点
    cd /usr/local/soft/zookeeper-3.5.7
    scp -r zookeeper-3.5.7/ node2:/usr/local/soft/
    scp -r zookeeper-3.5.7/ node1:/usr/local/soft/
  • 修改node1和node2中myid的编号
  • 修改环境变量并使其生效
  1. # ZOOKEEPER_HOME 分别在三个节点同时配置
  2. export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.5.7
  3. export PATH=$PATH:$ZOOKEEPER_HOME/bin
  4. source /etc/profile
  • 三个节点上启动zookeeper
  1. zkServer.sh start
  2. zkServer.sh status
  • 客户端连接ZK命令
  1. zkCli.sh 表示连接默认ip及端口号 localhost:2181
  2. # 连接到node1的zk上
  3. zkCli.sh -server node1:2181 表示连接指定IP及端口号

3.zookeeper的命令

  • 查看路径下的节点信息
    ls
  • 创建节点
  1. create 节点 -- 创建普通节点
  2. create 节点 节点数据 -- 创建普通节点并携带数据
  3. create -s 节点 --创建节点并在节点名称后添加编号
  4. create -e 节点 --创建临时节点
  • 获取节点中的数据
  1. get 节点
  2. get -s 节点 查看节点中的数据并获取详细状态信息
  3. get -w 节点 表示监听某个节点中的变化(只会触发一次效果)
  • 设置节点中的数据
  1. set 节点 数据 -- 给节点重新赋予数据
  • 获取节点状态信息
  1. stat /test2
  • 删除节点
  1. delete 节点 -- 可以删除一个不为空的节点(没有子节点)
  2. deleteall 节点
  • 退出客户端
  1. quit

4.zk连接idea的7种操作

  1. zk连接
  2. zk创建节点(Node)
  3. zk创建临时节点(EphemeralNode)
  4. zk获取节点地址值(DataFromNode)
  5. zk获取节点,子节点(迭代,递归)
  6. zk监听节点(GetChildrenChange)
  7. zk删除节点(DeletNode)(迭代,递归)

5.监听原理 , 选举机制

监听原理图解

Zookeeper - 图1

选举机制图解

Zookeeper - 图2