Zookeeper基本原理

    xiaoxiao2021-03-25  85

    Zookeeper基本原理


    一 zookeeper角色

    领导者(leader) 领导者负责进行投票的发起和决议,更新系统状态。学习者(learner) 跟随者:Follower用于接收客户端请求并向客户端返回结果,在选主过程中参与投票。 观察者:Observer可以接收客户端连接,并将请求转发给leader节点,但Observer 不参加投票过程,只同步leader的状态,Observer的目的是为了扩展系统,提高读取速度。客户端(client) 应用程序客户端,请求发起方。

    二 zookeeper选举

    zookeeper选举算法采用了Paxos协议。Paxos的核心思想是当大多数的server写成功,则任务数据写成功。 如果有三个server,则需两个Server写成功即表示任务数据写成功。 如果有四个或者五个server,则需三个Server写成功即表示任务数据写成功。Server数目一般为奇数,例如3,5,7等 如果有三个server则最多允许一个Server挂掉。 如果有四个server则同样最多允许一个Server挂掉。


    三 zookeeper数据模型

    zookeeper提供一个层次化目录结构,命名符合常规文件系统规范。每个节点在在zookeeper中叫做znode,并且他有唯一的一个路径标识。Znode有两种类型: 短暂的(ephemeral) 当客户端连接上zookeeper时,Znode才会存在,当客户端挂掉时,Znode就会被删除。 持久的(persistent) Znode会持久的保存,例如当客户端挂掉或者zookeeper关闭再重启时,Znode还会重新恢复。 节点Znode可以包含数据和子节点。Znode的数据可以有多个版本。客户端应用可以在节点上设置监视器(Watcher)。 Watcher作用:监测节点,一旦节点数据被修改,他就会广播给各个客户端,当客户端收到广播时,就会做出响应的调整。节点Znode不支持部分读写,而是一次性完整读写。Znode的类型在创建时确定,并且之后不能再修改。Znode有四种形式目录节点, persistent,persistent_sequential,ephemeral,ephemeral_sequential
    转载请注明原文地址: https://ju.6miu.com/read-40382.html

    最新回复(0)