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

    

    

    

最新文章

  1. Shiro安全框架入门篇(登录验证实例详解与源码)
  2. 微信跳转浏览器来下载不同系统的app
  3. mysql查询正在执行的进程
  4. SpringMVC报错The request sent by the client was syntactically incorrect ()
  5. android 4.4 状态栏隐藏
  6. 【Oracle】ORA-00600: [kfgFinalize_2]
  7. 调取jSon数据--展示
  8. canvas在手机qq浏览器显示错乱
  9. 画板社交工具开发分享——HTML5 canvas控件、PHP、社交分享学习(一)
  10. SIP for android
  11. WebDriver中自动识别验证码--Python实现
  12. [js高手之路] javascript面向对象写法与应用
  13. Tomcat软件使用常见问题
  14. Python进阶:设计模式之迭代器模式
  15. Openresty 进行限流的方法
  16. 剑指Offer 21. 栈的压入、弹出序列 (栈)
  17. Zuul权限检验
  18. E - 棋盘问题
  19. python访问hive
  20. Android 常用算法

热门文章

  1. Git安装,配置、基本使用
  2. FMC DA子卡设计原理图:FMCJ465-2路 16bit 12.6GSPS FMC DA子卡
  3. Bugku-ez_misc[wp]
  4. centos安装Jenkins报错
  5. Openssh升级到9.2版本
  6. layui伸缩左侧菜单栏,已伸缩成功但是右侧主体部分不动
  7. git 删除本地分支以及远程分支
  8. MobaXterm汉化版教程
  9. 「SOL」JOISC2021 解题报告
  10. 小白之Python-基础中的基础01