Zookeeper原理

Zookeeper是分布式,开放源码的分布式应用程序协调服务,包含一个简单原语集,
分布式应用程序可以基于它实现同步服务,配置维护和命名服务。

Zookeeper工作原理

Zookeeper核心是原子广播,此机制保证各个Server之间的同步,实现这个机制的协议是Zab协议,Zab协议包括两种模式。
恢复模式:当服务启动或者领导者(Leader)崩溃后,Zab进入恢复模式,当领导者被重新选举出来,各个Server与Leader同步状态信息后,恢复模式结束,状态同步保证了Leader和各个Server具有相同的系统状态。
广播模式:一旦Leader和多数Follower进行了状态同步后,开始广播消息,Zookeeper一直维持广播模式,直到Leader宕机或者失去大部分Follower的支持。

Zookeeper角色

领导者(Leader)
负责进行投票和决议,更新系统状态。

跟随者(Follower)
Follower接收客户端请求并向客户端返回结果,在选举过程中参与投票

客户端(Client)
请求方

Zookeeper数据模型

层次化目录结构,命名符合文件系统规范
每个节点称为znode,并且分配唯一的路径标识
节点znode可以包含数据和子节点
znode中的数据可有多个版本
客户端应用可以在节点上设置监视器
节点不支持部分读写,支持一次性读写

Zookeeper节点类型

持久节点类型(Persistent)
临时节点类型(Ephemeral)

Zookeeper读写机制

Zookeeper集群包括一个Leader和多个Follower,每个Server上保存一份数据副本,全局数据保持一致,更新请求转发由Leader负责。

Leader选举算法

LeaderElection
UDP服务,每个Server轮询所有server,获取每个Server的投票,统计zxid最大的server得票数,
同时更新自己的投票,当得票>1/2节点数时选举结束。
等待所有服务器返回后再统计投票结果,最后选择Leader可能不是zxid最大的server

FastLeaderElection
添加logicalclock控制,每次新的选举,所有节点的初始值相同,每次收到回复都会计算投票结果
当得票>1/2节点数时选举结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值