前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3 Zookeeper 原理(选举机制)

3 Zookeeper 原理(选举机制)

作者头像
用户7630333
发布2023-12-07 18:45:40
2280
发布2023-12-07 18:45:40
举报
文章被收录于专栏:look Java

3 Zookeeper 原理(选举机制)

1 选举机制(面试重点)

  • 半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器
  • 虽然在配置文件中并没有指定MasterSlave。但是,Zookeeper 工作时,是有一个节点为 Leader,其他则为 Follower,Leader是通过内部的选举机制临时产生的
img
img

选举大致流程:

  1. Server1 先投票,投给自己,自己为 1 票,没有超过半数,根本无法成为 leader,顺水推舟将票数投给了 id 比自己大的 Server2
  2. Server2 也把自己的票数投给了自己,再加上 Server1 给的票数,总票数为 2 票,没有超过半数,也 无法成为 leader,也学习 Server1,顺水推舟,将自己所有的票数给了 id 比自己大的 Server3
  3. Server3 得到了 Server1 和 Server2 的两票,再加上自己投给自己的一票。3 票超过半数,顺利成为 leader
  4. Server4 和 Server5 都投给自己,但是无法改变 Server3 的票数,只好听天由命,承认 Server3 是 leader

2 节点类型

一共两种类型 持久型(persistent),短暂型(ephemeral)

  • 持久型(persistent):
    • 持久化目录节点(persistent)客户端与 zookeeper 断开连接后,该节点依旧存在
    • 持久化顺序编号目录节点(persistent_sequential)客户端与 zookeeper 断开连接后,该节 点依旧存在,创建znode时设置顺序标识,znode 名称后会附加一个值,顺序号是一个单调 递增的计数器,由父节点维护,例如:Znode001,Znode002...
  • 短暂型(ephemeral):
    • 临时目录节点(ephemeral)客户端和服务器端断开连接后,创建的节点自动删除
    • 临时顺序编号目录节点(ephemeral_sequential)客户端与 zookeeper 断开连接后,该节点 被删除,创建 znode 时设置顺序标识,znode 名称后会附加一个值,顺序号是一个单调递增 的计数器,由父节点维护,例如:Znode001,Znode002...

注意:序号是相当于i++,和数据库中的自增长类似


3 监听器原理(面试重点)

img
img
  1. 在 main 方法中创建 Zookeeper 客户端的同时就会创建两个线程,一个负责网络连接通信,一个负责监听
  2. 监听事件就会通过网络通信发送给 zookeeper
  3. zookeeper 获得注册的监听事件后,立刻将监听事件添加到监听列表里
  4. zookeeper 监听到 数据变化 或 路径变化,就会将这个消息发送给监听线程
    • 常见的监听

​ 1. 监听节点数据的变化:get path [watch]

​ 2.监听子节点增减的变化:ls path [watch]

  1. 监听线程就会在内部调用 process 方法(需要我们实现 process 方法内容)
img
img

4 写数据流程

img
img
  1. Client 想向 ZooKeeper 的 Server1 上写数据,必须的先发送一个写的请求
  2. 如果Server1不是Leader,那么Server1 会把接收到的请求进一步转发给Leader。
  3. 这个Leader 会将写请求广播给各个Server,各个Server写成功后就会通知Leader。
  4. 当Leader收到半数以上的 Server 数据写成功了,那么就说明数据写成功了。
  5. 随后,Leader会告诉Server1数据写成功了。
  6. Server1会反馈通知 Client 数据写成功了,整个流程结束
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3 Zookeeper 原理(选举机制)
    • 1 选举机制(面试重点)
      • 2 节点类型
        • 3 监听器原理(面试重点)
          • 4 写数据流程
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档