AmosCloud

Library

Have a Question?

If you have any question you can ask below or enter what you are looking for!

zookeeper

zookeeper

是什么

是一个集中式分布式协调服务

  • 使用场景:
    1. 维护配置信息
    2. 自定编号的命名管理
    3. 高可用架构主备切换协调
    4. 分布式锁

zk安装

单节点

集群模式

  1. 下载解压
  2. 修改配置文件

zoo.cfg

# 修改zk保存数据使用的路径
dataDir=/opt/zookeeper-3.4.14/data
# 设置集群的配置信息
#server.A=B:C:D
#A id,zk集群中每个服务,需要设置一个全局唯一的整数id,myid
#B 当前id对应的主机名或者ip
#C 设置集群之间同步数据使用的通信端口 2888
#D 设置集群选举投票使用的通信端口  3888

server.81=bd0801:2888:3888
server.82=bd0802:2888:3888
server.83=bd0803:2888:3888
  1. 分发安装文件

    为每个服务器单独修改myid文件
    myid文件创建在dataDir中
    文件名为myid,内容是当前机器对应的id

  2. 配置环境变量

echo 'export ZK_HOME=/opt/zookeeper-3.4.14 ' >> /etc/profile
echo 'export PATH=$ZK_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
  1. 启动

    • zk没有提供集群的一键启动
      需要在每个zk服务器执行zkServer.sh start

zk核心原理

  1. 存储原理

file

  1. 选举机制
    集群半数以上服务启动后,将id最大的选举为leader