首页 > 其他分享 >如何基于ZK实现高可用架构

如何基于ZK实现高可用架构

时间:2022-12-09 19:12:28浏览次数:39  
标签:基于 架构 parent ZK 节点 master slave leader

zookeeper设计步骤

  设计path   节点的路径

  选择znode类型  普通节点、临时节点等

  设计znode数据  节点中的数据

  设计watch  节点的监听事件以及对应的处理

 

ZK实现主备切换架构

  1、设计2个临时节点 master slave

  2、master节点挂掉时 slave升级master

  3、由于切换时可能会数据冲突,master节点需要记录时间

  4、节点启动时尝试创建master节点,如果失败则创建slave节点。 当slave节点收到master丢失的事件时,尝试创建master节点,如果成功删除slave节点。

 

ZK实现集群选举

  1、最小节点数获胜

    共用parent node,集群中每个节点在parent node下创建节点

    当leader节点挂掉时,编号最小的znode成为leader,因此使用临时有序节点

    根据业务写入节点

    启动后在parent节点下创建有序的临时节点;编号最小的znode成为leader; 当parent下节点删除时判断是否为leader

 

  2、抢建唯一节点

    所有节点只有一个leader 节点,本质上是一个分布式锁。

    当leader挂掉时,所有节点抢注leader节点,谁抢到是谁的。所以用临时节点。

    根据业务写入数据

    启动后所有节点抢注leader,监控到leader删除后所有节点抢注leader

  3、法官判决

    共用父节点

    编号最小的成为法官,因此使用有序临时节点

    根据业务需要写入数据,比如事务的ID

    编号最小的节点成为法官,法官负责选举规则,监听到节点删除时所有节点更新选举数据,法官读取所有节点数据根据算法选出leader并写入父节点,所有节点监听父节点确认自己是不是leader

 

 

 

 

    

    

    

 

标签:基于,架构,parent,ZK,节点,master,slave,leader
From: https://www.cnblogs.com/windghost/p/16969769.html

相关文章