zookeeper集群选举机制

news2024/11/25 21:39:09

Zookeeper选举机制——第一次启动

zookeeper集群三个重要的参数(决定选举结果)

SID 服务器 ID 用来唯一标识一台 ZooKeeper集群中的机器,每台机器不能重 , myid 一致
ZXID :事务 ID ZXID 是一个事务 ID ,用来标识一次服务器状态的变更。 在某一时刻,集群中的每台机器的ZXID 值不一定完全一致,这和ZooKeeper 服务器对于客户端“更新请求”的处理逻辑有关。
Epoch 每个 Leader 任期的代号 。没有Leader时同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加

假设现在zookeeper集群有5台机器那么选举机制具体步骤为

  • 1)服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3票),选举无法完成,服务器1状态保持为 LOOKING;
  • 2)服务器2启动,再发起一次选举。服务器12分别投自己一票并交换选票信息:此时服务器1发现服务器2myid比自己目前投票推举的(服务器1)大,更改选票为推举服务器2此时服务器1票数0票,服务器2票数2票,没有半数以上结果,选举无法完成,服务器12状态保持LOOKING
  • 3)服务器3启动,发起一次选举。此时服务器12都会更改选票为服务器3。此次投票结果:服务器10票,服务器20票,服务器33票。此时服务器3的票数已经超过半数,服务器3当选Leader。服务器12更改状态为FOLLOWING,服务器3更改状态为LEADING; 
  • 4)服务器4启动,发起一次选举。此时服务器123已经不是LOOKING状态,不会更改选票信息。交换选票信息结果:服务器33票,服务器4为1票。此时服务器4服从多数,更改选票信息为服务器3,并更改状态为FOLLOWING
  • 5)服务器5启动,同4一样当小弟。

Zookeeper选举机制——非第一次启动

1 )当 ZooKeeper 集群中的一台服务器出现以下两种情况之一时,就会开始进入 Leader 选举:
  • 服务器初始化启动。
  • 服务器运行期间无法和Leader保持连接。
2 )而当一台机器进入 Leader 选举流程时,当前集群也可能会处于以下两种状态:
  • 集群中本来就已经存在一个Leader
    • 对于第一种已经存在Leader的情况,机器试图去选举Leader时,会被告知当前服务器的Leader信息,对于该机器来说,仅仅需要和Leader机器建立连接,并进行状态同步即可。
  • 集群中确实不存在Leader
    • 假设ZooKeeper5台服务器组成,SID分别为12345ZXID分别为88877,并且此时SID3的服务器是Leader。某一时刻,3和5服务器出现故障,因此开始进行Leader选举。
SID
EPOCH
ZXID
118
218

4

17
选举 Leader 规则:
EPOCH 大的直接胜出
EPOCH 相同,事务 id 大的胜出
③事务 id 相同,服务器 id 大的胜出

所以sid为2的机器最终被选为的新的leader

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1162659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

室内外导航一体化技术原理与成品展示

随着人们对出行需求的不断提升,室内外导航一体化技术变得越来越重要。该技术可以帮助用户在建筑物内、外部空间以及城市范围内进行精确导航,提升出行体验。 室内外一体化导航实现技术原理 室内外导航技术主要依赖于定位技术、地图数据以及空间建模等手段…

YOLOV8 NANO手势识别

采用YOLOV8 NANO训练,得到pt模型,然后转换成ONNX模型,OPENCV DNN调用,支持C,PYTHON,ANDROID开发。CPU每帧20MS左右,可以达到实时性 YOLOV8NANO手势识别

保护隐私,打造独特的个人图床——cpolar+Qchan轻量级搭建——“cpolar内网穿透”

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景,在大量开发人员的努力下,已经开发出大…

文言一心中将C语言归类为低级语言,这对么?

文言一心中将C语言归类为低级语言,这对么? 以下是文言一心中的回答:C语言属于低级语言。低级语言通常指的是接近于机器语言的编程语言,它们与计算机硬件的交互更加直接,能够更高效地利用计算机资源。最近很多小伙伴找我&#xff…

SSM使用OpenOffice+Adobe acrobat实现Office文件的在线预览

文章迁移自语雀。 也许Java天生不适合处理Office文件吧,POI的使用一堆问题,现在SpringMVCSpringMybatis的web项目想实现在线预览也是问题一大堆。马的,开始时打算使用OpenOfficeSWFToolsFlexPaper的,但是该方案是使用flash的,众所…

葡萄酒是如何从葡萄园到你的酒杯的?

根据定义,我们称葡萄酒的美味花蜜是葡萄酒精发酵的产物。也有果酒,或乡村酒,是由发酵的水果制成的。然而,传统意义上的葡萄酒是由酿酒葡萄制成的。好吧,一切都是在几个步骤中完成的,来自云仓酒庄品牌雷盛红…

【Linux】进程创建

文章目录 进程创建fork函数初识fork函数返回值写时拷贝fork常规用法fork调用失败的原因 进程创建 fork函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 include <unistd.h> …

【EI会议征稿】第三届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2024)

第三届电子信息工程、大数据与计算机技术国际学术会议&#xff08;EIBDCT 2024&#xff09; 2024 3rd International Conference on Electronic Information Engineering, Big Data and Computer Technology 第三届电子信息工程、大数据与计算机技术国际学术会议&#xff08;…

PHP版本升级后,PHPExcel导出下载文件失败,白屏或ERR_INVALID_RESPONSE(网页暂时无法连接,或者它已永久性地移动到了新网址)

PHP版本升级后&#xff0c;PHPExcel导出下载文件失败&#xff0c;白屏或ERR_INVALID_RESPONSE&#xff08;网页暂时无法连接&#xff0c;或者它已永久性地移动到了新网址&#xff09; 这里因为PHP版本过高导致PHPExcel下载失败&#xff1b; 解决方法&#xff1a;打开 PHPExce…

分享一下商城小程序怎么做

随着移动互联网的普及&#xff0c;越来越多的用户开始使用商城小程序进行购物。商城小程序不仅方便快捷&#xff0c;还能享受更多的优惠和福利。本文将探讨如何打造一个成功的商城小程序&#xff0c;并分享一些实用的策略和案例。 了解用户需求是打造商城小程序的第一步。我们需…

利用云计算和微服务架构开发可扩展的同城外卖APP

如今&#xff0c;同城外卖APP已经成为了人们点餐的主要方式之一。然而&#xff0c;要构建一款成功的同城外卖APP&#xff0c;不仅需要满足用户的需求&#xff0c;还需要具备可扩展性&#xff0c;以适应快速增长的用户和订单量。 一、了解同城外卖APP的需求 在着手开发同城外卖…

FastDFS+Nginx搭建本地服务器并实现远程访问

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

2.预备知识-3GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 数据操作数据预处理一、N维数组样例二、创建数组三、访问元素四、数据操作D2L注意点五、数据预处理D2L注意点六、QA No.2 线性代数一、标量二、向量1、基本操作2、空间表示3、乘法 三、矩阵1、基本操作2、乘法3、空间表…

uniapp 微信小程ios端键盘弹起后导致页面无法滚动

项目业务逻辑和出现的问题整理 新增页面 用户可以主动添加输入文本框 添加多了就会导致当前页面出现滚动条,这就导致ios端滚动页面的时候去点击输入框键盘抬起再关闭的时候去滚动页面发现页面滚动不了(偶尔出现),经过多次测试发现是键盘抬起的时候 主动向上滑动 100%出现这种问…

[PyTorch][chapter 58][强化学习-2-有模型学习2]

前言&#xff1a; 前面我们讲了一下策略评估的原理,以及例子. 强化学习核心是找到最优的策略&#xff0c;这里 重点讲解两个知识点&#xff1a; 策略改进 策略迭代与值迭代 最后以下面环境E 为例&#xff0c;给出Python 代码 。 目录&#xff1a; 1&#xff1a; 策略改进 2&…

计算协方差

例如&#xff0c;有两组数据&#xff1a; 身高x&#xff08;厘米&#xff09; 体重y&#xff08;公斤&#xff09; 194 87 183 78 175 71 平均 184 78.7 现在要计算x和y的协方差。 手工计算 用excel计算 ​​​​​​​

Security ❀ HTTP协议常见DOS攻击详解

文章目录 1. 协议基础概述2. HTTP协议报文2.1 HTTP Request 请求包2.2 HTTP Response 应答包 3. HTTP GET Flood3.1. 攻击原理3.2. 防护方法 4. HTTP POST Flood4.1. 攻击原理4.2. 防护方法 5. 慢速CC攻击5.1. 攻击原理5.2. 防护方法 6. 总结 1. 协议基础概述 HTTP - HyperTex…

解决Hbulider 按F11不能退出免打扰模式

原因&#xff1a;F11快捷键并不是退出免打扰模式&#xff0c;需要覆盖配置 右侧如下图&#x1f447; [{"key":"ctrlf11","command":"workbench.action.distanceFreeMode"} ]

WheatA 轻量级生态数据软件

无论是在工作还是上学期间&#xff0c;大家想要做一个科研项目或者市场调查时&#xff0c;往往需要大量的数据用于分析总结&#xff0c;这时获得优质的数据就显得额外重要&#xff0c;数据的优劣往往决定了项目结果的好坏。数据来源的主要渠道主要有两种&#xff1a;无非是去数…

CTF-Reverse---VM虚拟机逆向[HGAME 2023 week4]vm题目复现【详解】

文章目录 前言0x1[HGAME 2023 week4]vm提取汇编指令mov指令push指令&pop指令运算操作cmp指令jmp指令je 和 jne exp 前言 没有前言。终于搞定第二题了。费劲是真的费。 题目在nssctf上有。 这一题写完才看到有提示&#xff0c;是关于构建结构体的&#xff0c;下次试试。 0x…