ZooKeeper 集群选举:概念&全新集群选举|学习笔记

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 快速学习 ZooKeeper 集群选举:概念&全新集群选举

开发者学堂课程【大数据 ZooKeeper 快速入门 ZooKeeper 集群选举:概念&全新集群选举】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/549/detail/7572


ZooKeeper 集群选举:概念&全新集群选举

 

目录:

一、zookeeper 选举机制概念

二、全新集群选举

 

课时概要:下面进行学习 zookeeper 选举机制,所谓选举机制就是在集群当中有 leader 角色和 follower 角色,通过选举来决定 Leader

 

一、Zookeeper 选举机制

zookeeper 默认的算法是 FastLeaderElection,采用投票数大于半数则胜出的逻辑。

1.概念

(1)服务器 ID

搭建 zookeeper 集群配置 myID,与之对应,数值越大,权重越大

比如有三台服务器,编号分别是1,2,3。

编号越大在选择算法中的权重越大。

(2)选举状态

在集群选举时,有如下状态:

LOOKING,竞选状态。

FOLLOWING,随从状态,同步leader 状态,参与投票。OBSERVING,观察状态,同步 leader 状态,不参与投票。

LEADING,领导者状态。

(3)数据 ID

服务器中存放的最新数据 version。

值越大说明数据越新,在选举算法中数据越新权重越大。逻辑时钟,值越大数据越新

(4)逻辑时钟

也叫投票的次数,同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加,然后与接收到的其它服务器返回的投票信息中的数值相比,根据不同的值做出不同的判断。

2. 选举机制流程

通俗来讲,分为两种选举:全新集群和非全新集群

全新集群选举即任何数据都没有即为全新集群

 

二、全新集群选举

1. 概述

全新集群选举:假设现在有5台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动。过程如下:

(1)服务器 1 启动,给自己投票,然后发投票信息给其他服务器,由于其他服务器没有启动,所以它收不到反馈信息,但是由于投票还没有到达半数(服务器 1 怎么知道一共有多少台服务器参与选举呢, 那是因为在zk配置文件中配置了集群信息,所有配置了3888端口的服务器均会参与投票,假设这5台都参与投票,则超过半数应为至少3台服务器参与投票。),所以服务器 1 的状态一直处于 LOOKING。

(2)服务器 2 启动, 给自己投票,然后与其他服务投票信息交换结果, 由于服务器 2 的编号大于服务器 1, 所以服务器 2 胜出,但是由于投票仍未到达半数,所以服务器 2 同样处于 LOOKING 状态。

(3)服务器 3 启动, 给自己投票,然后与其他服务投票信息交换结果, 由于服务器 3 的编号大于服务器 2,1,所以服务器 3胜出, 并且此时投票数正好大于半数, 所以选举结束,服务器 3 处于LEADING 状态, 服务器 1, 服务器 2 处于 FOLLOWING 状态。

(4)服务器 4 启动, 给自己投票, 同时与之前的服务器 1 ,2,3交换信息,尽管服务器 4 的编号最大,但之前服务器 3 已经胜出,所以服务器 4 只能处于 FOLLOWING 状态。

(5)服务器 5 启动, 同上。FOLLOWING 状态。

2.特点

(1)每个机器都给自己投票

(2)投票时过半,选举结束

 image.png

五台机器,zookeeper 配置文件修改好之后,启动 zookeeper。

先安装顺序启动,先给自己投票,去比较以下投票结果,自己有一票处于 looking 观望状态;

启动第二台机器依旧给自己投一票,根据启动先后,第二台服务器权重大于第一台服务器,所有第二台的服务器有2票,第三台服务器启动也给自己投一票,然后权重大于前两台,有3票,大于半数直接获胜,称为 Leader,其他的为 following,第四台服务器编号大也不参与投票,因为投票结束。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
29 1
|
1月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
62 1
|
1月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
42 1
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
42 1
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
48 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
49 0
|
2月前
|
存储 负载均衡 算法
分布式-Zookeeper-Master选举
分布式-Zookeeper-Master选举
|
3月前
|
开发工具
部署安装zookeeper集群
部署安装zookeeper集群
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1