关于ZooKeeper(三) 领导者选举,原子广播,一致性,会话, 状态

运行模式:独立模式/复制模式

复制模式:半数以上提供服务则正常工作,通常奇数个机器

高可用:

集合体中半数以上机器处于可用状态,并确保对znode的每个修改会被复制到超过半数以上的机器上。如果少于半数的机器出现故障,则至少有一台机器上有最新的状态,其余机器也会更改到这个状态

实现协议:Zab协议:无限重复的两个阶段领导者选举和原子广播

领导者选举

    所有机器通过一个选择过程选举领导者了leader,其余机器为follower,半数以上follower与leader状态同步,则阶段完成

原子广播

    所有写请求转发给leader,leader广播给follower,半数以上follower持久化更改后,leader提交更新,通知客户端成功

    任何znode都可以提供读请求


扫描二维码关注公众号,回复: 1794980 查看本文章

一致性

客户端无法直到自己是不是连到了与领导者状态一致的节点上

所有更新都有编号,严格按照编号顺序执行更新z1<z2,则z1一定发生在z2之前

    > 顺序一致性:顺序更新

    > 原子性:操作原子性,要么成功,要么失败

    > 单一系统映像:客户端连接到任意一台服务器,看到的都是同样的视图,滞后于当前视图的机器不会接受连接请求

    > 持久性:更新不可撤销

    > 及时性:强迫客户端连接较新的服务器


会话

    > 建立会话:客户端维护服务器列表,逐个尝试连接,直到成功

    > 会话:有超时设置,服务器在时间范围未接收到请求,则会话过期,会话相关znode撤销,无法重新打开,需要重建

    > 维持会话:客户端定期发送ping请求

    > 故障切换:自动故障切换不会影响原来的会话


状态

CONNECTING连接中 

CONNECTED连接

CLOSED关闭


猜你喜欢

转载自blog.csdn.net/weixin_42129080/article/details/80839308