Zookeeper实践

What?

  • 保证分布式数据一致性
    • 配置维护
    • 域名服务
    • 分布式同步
    • 组服务
    • 分布式锁
  • paxos 一致性协议
    • 拜占庭将军问题 zab zookeeper atom broadcast
  • 奇数个可以防止脑裂 dubbo <!-- more -->

角色

  • leader
  • follower
  • observer 提升吞吐量,不参与投票

znode节点

  • 短暂的
  • 持久的
  • 短暂有序
  • 持久有序

观察

Where

http://zookeeper.apache.org/

Why?

  • 特点
    • 最终一致性
    • 可靠性
    • 实时性
    • 独立性
    • 原子性
    • 顺序性

How?

  1. 准备3台虚拟机

    • 在每台虚拟机上都添加hosts配置vi /etc/hosts
  2. 下载并配置http://www.apache.org/dyn/closer.cgi/zookeeper/

    • cd /opt/soft
    • wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
    • tar zxvf zookeeper-3.4.8.tar.gz
    • cd zookeeper-3.4.8
    • mkdir data
    • mkdir dataLog
    • vi data/myid 输入1 并保存退出
    • cp conf/zoo_sample.cfg conf/zoo.cfg
    • vi conf/zoo.cfg

    1
    2
    3
    4
    5
    6
    7
    dataDir=/opt/soft/zookeeper-3.4.8/data
    dataLogDir=/opt/soft/zookeeper-3.4.8/dataLog
    initLimit=5
    syncLimit=2
    server.1=sj-node1:2888:3888
    server.2=sj-node2:2888:3888
    server.3=sj-node3:2888:3888

单台配置完毕

  1. 将配置好的拷贝到其它两天虚拟机
  2. scp -r zookeeper-3.4.8 root@sj-nod2:/opt/soft
  3. 登录第二台虚拟机,记得hosts文件已配置好
  4. cd /opt/soft/zookeeper-3.4.8
  5. vi data/myid 删除1 输入2 保存退出
  6. 启动zookeeper,在3台虚拟机上都输入
  • /opt/soft/zookeeper-3.4.8/bin/zkServer.sh start
  1. 查看集群状态
  • /opt/soft/zookeeper-3.4.8/bin/zkServer.sh status
  • 主节点
  • 从节点
  1. 设置观察节点
  • 观察节点
  1. 客户端访问
  • /opt/soft/zookeeper-3.4.8/bin/zkCli.sh
  • 列出所有1级节点
    • ls /
  • 创建节点
    • create /zktest testdata
  • 查询节点数据
    • get /zktest
  • 设置节点数据
    • set /zktest testset
  • 删除节点数据
    • delete /zktest

参考

https://www.cnblogs.com/shenguanpu/p/4048660.html