欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zookeeper原理

程序员文章站 2022-06-01 17:47:09
...

zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,
它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。
最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户

配置zookeeper

  • 上传zookeeper.jar包

  • 解压

  • 修改 zookeeper下的zoo.cfg

    dataDir= 设置自己的目录 -------是数据目录路径
    配置节点: server.1=node01:2888:3888
    server.2=node02:2888:3888
    server.3=node03:2888:3888

  • 2888和3888是端口号

  • 2888:是对外通信的端口号

  • 3888:是leader挂掉之后 重新选举leader时候提供的对外的端口号

(特别注意:linux中的防火墙必须关掉,否则zookeeper集群启动不成功)
由于zookeeper是选举机制所以节点最好是2N+1个

原子广播

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

通过投票确定某一件事能不能做(过半原则—zookeeper最好是奇数)
提交请求到follower,follower会将请求发送给leader
leader将请求下发给所有的follower,F来判断,并将结果返回给L
L将请求写入的文件分发到所有的follower------(最终一致性–及时在写入的过程中有节点连接不上,当恢复的时候还会把节点上写入数据)
Zookeeper原理

和zab协议

广播模式–选举出来leader,对外提供服务
恢复模式—选举leader,也就是4大状态存在

zookeeper中的角色

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