当前位置: 首页 > news >正文

zk集群选举核心概念及选举时状态 选举发生的时机及选举算法

手动搭建zk集群的时候就会接触到myid。

myid :这是 zk集群中服务器的唯一标识,称为myid。这个存在于文件里面,例如,有三个zk服务器,那么编号分别是1,2,3。在搭建zk集群的时候可以给到myid是1,2,3这种。这个是集群当中服务器的唯一标识。
zxid
ReentranReadWriteLock 32
高位 低位
0000000000000000 0000000000000000
epoch xid
00000000000000000000000000000000 00000000000000000000000000000000
zxidLong类型,其中高32位表示epoch,低32位表示xid。即zxid由两部分构成:epoch
xid每个 Leader 都会具有一个不同的epoch值,表示一个时期、时代。新的Leader产生,则会更新所有 zkServer 的 zxid中的epoch
而 xid 则为zk的事务id,每一个写操作都是一个事务,都会有一个 xid。每一个写操作都需要由Leader发起一个提议,由所有Follower表决是否同意本次写操作。
逻辑时钟 :逻辑时钟,Logicalclock,是一个整型数,该概念在选举时称为 logicalclock,而在zxid中则为epoch的值。 即 epochlogicalclock是同一个值,在不同情况下的不同名称。

zk的选举状态

  • LOOKING,选举状态(查找Leader的状态)。如果某个时刻,leader发生了宕机,这台服务器挂了,那么整个集群就会进行一个重新的选举。那么集群中的server都是looking的状态。这个状态表示在寻找leader的状态。
  • LEADING,领导者状态。处于该状态的服务器称为 Leader。
  • FOLLOWING,随从状态,同步 leader 状态。处于该状态的服务器称为Follower。一旦选举产生了leader,那么其他机器就处于following状态。处于随从的server就会去同步leader的状态。
  • OBSERVING,观察状态,同步 leader状态。处于该状态的服务器称为Observer

简介:zk集群选举发生的时机及选举算法

发生时机:整个集群群龙无首的时候(1.服务启动2.leader宕机之后)
选举机制:集群中,半数zkServer同意,则产生新的leader(搭建集群时,一般都是奇数个)

三台服务器,最多允许一台宕机,四台服务器,也是最多允许一台宕机。如果宕机超过2台,那么集群就会陷入宕机的状态。选择3台相对于四台来说可以节省资源,因为3个效果和4个的效果是一样的。
选举算法: 对比(myid,zxid),先对比zxid,zxid大者(大表示数据越新)胜出,成为leader,如果zxid一致,则myid大者成为leader。

myid3去启动的时候,同样给自己进行投票,和之前两台去交换信息。尽管这个时候,第三台服务器myid大,但是之前在选举的时候,第二台已经胜出了,所以这个时候也会成为follower。1,3这两台是follower,myid2成为集群的leader。

还有一种情况是leader宕机的时候,那么集群就无法对外提供服务了,因为写入操作只有leader可以处理。

选举会根据投票的结果,根据投票结果再去看zxid。

端口的作用 2181 对client端提供服务2888集群内及其通讯使用的端口3888集群选举leader。

http://www.jsqmd.com/news/494431/

相关文章:

  • CLIP-GmP-ViT-L-14图文匹配工具详解:为什么用Softmax而非cosine similarity?
  • SenseVoice Small多场景应用:外贸谈判录音→中英双语对照字幕生成
  • 基于django的高校固定资产管理系统
  • 智能家居接入谷歌home/assistant/智能音箱
  • 通义千问2.5部署避坑指南:函数调用与JSON输出配置详解
  • FLUX.小红书极致真实V2GPU算力适配:支持FP16+4-bit混合精度推理模式
  • 万象熔炉 | Anything XL应用案例:轻小说插画自动补全与风格迁移实践
  • BGE-M3部署详解:TRANSFORMERS_NO_TF=1环境变量设置原理与必要性
  • 代码规范:Spring Boot 项目命名、注释与包结构
  • MiniCPM-o-4.5-nvidia-FlagOS镜像部署:预置Pillow/MoviePy等多模态依赖包
  • cv_unet_image-colorization效果实测:不同年代黑白胶片颗粒感适配分析
  • Local AI MusicGen精彩案例分享:10秒生成Hans Zimmer风格电影配乐
  • SiameseUIE效果展示:含‘在’‘于’等冗余字的文本中精准定位实体
  • MGeo中文地址解析模型保姆级教程:Gradio界面汉化与多语言地址输入支持改造
  • CLIP-GmP-ViT-L-14惊艳效果:艺术作品图-风格描述词向量空间可视化
  • 丹青识画代码实例:Python调用API实现‘铺卷-参详-点睛-获墨’
  • GLM-Image开源模型效果实测:对‘少数民族服饰’‘传统乐器’‘地域建筑’生成文化准确性达96.8%
  • VibeVoice语音合成快速上手:流式播放+CFG参数调节详细步骤
  • YOLO12代码实例:Python调用Ultralytics API实现批量检测
  • Flowise镜像免配置部署:apt+pnpm三步启动,无需LangChain编码
  • 2026年质量好的干法钢渣风淬处理厂家推荐:钢渣湿法风淬处理/钢渣综合风淬处理实力厂家推荐 - 品牌宣传支持者
  • bge-m3为何登顶MTEB?开源Embedding模型深度解析
  • 浦语灵笔2.5-7B开箱即用:21GB模型权重+CLIP+字体资源全内置镜像体验
  • EagleEye效果展示:同一张图不同Threshold设置下的检测结果对比图集
  • Qwen3-TTS-12Hz-1.7B-Base环境部署:GPU显存优化与16G显卡适配方案
  • 2026年比较好的干法风淬处理公司推荐:钢渣风淬处理/钢渣综合风淬处理公司精选 - 品牌宣传支持者
  • Qwen3-ASR-1.7B效果展示:同一段医疗问诊录音,1.7B vs Whisper-large-v3对比
  • Nano-Banana Studio参数详解:采样步数30vs50对金属部件纹理还原度影响
  • DeepSeek-OCR-2快速部署:HuggingFace Spaces免费托管Gradio OCR Demo
  • 内网---> Owns权限滥用