zookeeper原理

zookeeper

zookeeper 是一个分布式协调服务

配置

上传zookeeper.jar包
解压
修改 zookeeper下的zoo.cfg
        dataDir= 设置自己的目录  -------是数据目录路径
        配置节点: server.1=node01:2888:3888
                 server.1=node01:2888:3888
                 server.1=node01:2888:3888
2888和3888是端口号
2888:是对外通信的端口号
3888:是leader挂掉之后 重新选举leader时候提供的对外的端口号

注意:检查防火墙是否关闭
在没有配置防火墙端口号的情况下zookeeper集群起不起来

选举机制

选举遵循过半原则 (少数服从多数)
我zookeeper集群的节点数最好是2n+1个zookeeper原理_第1张图片

原子广播和zab协议

   广播模式:已经选举的出来的leader,开始对外提供服务---原子广播

zookeeper原理_第2张图片

角色

           角色                 任务                                         状态
 1. leader   领导者          发起请求,并且投票                                 leading
 2. follower   跟随者        响应leader的请求并发起投票                         following
 3. observer  监听者         监视leader 并将leader的情况汇报 不参与投票          observering
                                   looking (leader挂掉或者刚启动集群)

监听机制

 follower查看leader的状态,然后将状态信息进行更新和发送

zookeeper命令

启动: zkServer.sh start
关闭:zkServer.sh stop
状态:zkServer.sh status
启动客户端:zkCli.sh -server ip:port(2181) 

操作文件的命令
ls / 查看
set 设置
get 获取
create [-s] [-e] name data 创建文件节点 -e 临时 -s 顺序 默认持久
znode的类型
持久节点
临时节点
持久顺序节点
临时顺序节点

你可能感兴趣的:(zookeeper原理)