简单回顾 Zab 协议集群模式原理|学习笔记

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习简单回顾 Zab 协议集群模式原理

开发者学堂课程【精通 Spring Cloud Alibaba简单回顾 Zab 协议集群模式原理】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/634/detail/10103


简单回顾 Zab 协议集群模式原理


内容简介:

一、分布式系统一致性

二、ZAP 的协议实现原理


一、分布式系统一致性

我们在分布式系统,存在多个系统之间集群保持数据一致性,采用 CP 一致性算法保持数据的一致性的问题。

Zookeeper 基于 ZAP 协议实现保持每个节点的数据同步的问题,中心化思想集群模式:分为领导和跟随者角色。

以 Zookeeper 举例;

在 Zookeeper 集群当中,一般我们如何选择哪一个 Zookeeper 节点作为领导者,能使用 leader 的节点能力肯定是比较强的

(1)在程序中如何成为某个节点能力比较强的:

1.对每一个节点配置一个 myid 或者 serverid 还有数值越大表示能力越强:

就如下图中的每一个 Zookeeper 都有对应的 id,id 名也不一致,而配置 myid 的目的是为了观察哪一个 myid 最大,哪一个对应的节点就是引领者,这是他的基本思想,才能区分节点,能让这个节点较为突出,一般常见的算法所标记的节点能力强。

2.随机时间,时间越短,节点能力越强:

第一种方式也存在一定的缺点,它对于开发者来说是很麻烦的,因为在上述情况下,每一个节点都需要配置一个 myid,所以就可以采用随机时间,它是动态化的,不是写死。

(2)过半机制

整个集群中为了保持数据的一致性的问题,必须满足大多数情况>n/2+1 可运行的节点,环境才能使用

三台 Zookeeper 是一个集群,我们在运行过程中是如何实现集群的?

现假设已经安装了一个非常纯洁干净的 Zookeeper,那么在左边第一个 Zookeeper启动之后,右边两个并未启动,这整个 Zookeeper 是不能启动,不能访问的

image.png

现在在上述前提下启动 Zookeeper2,它的 myid 是等于2,那么通过比较和左边第一个的 myid 可以得到 myid 等于2的节点能力较强,在这个过程中会进行投票由于myid=1>myid=0,

所以 myid=0的那一票会给 myid=1,所以选择 myid=1的节点为领导角色。

并且现在可用的节点数为2,满足过半机制,所以现在这整个集群是可以运行的

图片8.png

在上述启动 Zookeeper2并选择它为领导角色之后,在启动 Zookeeper3,此时的myid=2,不会在选择 myid=2的节点为领导角色,因为后面在启动的节点不能再参加选举

这个环境是不能使用的,所以在这种情况下它 myid=1一定是领导者,而剩下的两个的节点就是他的追随者。


二、ZAP 的协议实现原理

ZAP 的协议实现原理是通过比较 myid,myid 谁最大谁就是为可能是领导角色,只要满足过半机制就可以成为领导角色,后来启动的节点不会参与选举的

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5月前
共识协议的技术变迁问题之Raft协议中的日志复制如何解决
共识协议的技术变迁问题之Raft协议中的日志复制如何解决
|
7月前
|
存储 负载均衡 网络协议
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
【4月更文挑战第10天】ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
95 1
|
存储
zookeeper的ZAB协议的原理以及底层源码实现超级详解 2
zookeeper的ZAB协议的原理以及底层源码实现超级详解
145 1
|
7月前
|
存储 算法 前端开发
作者推荐 | 分布式协议之巅 — 揭秘基础Paxos与Raft协议如何实现分布式系统达成一致性(非变种Paxos协议)
作者推荐 | 分布式协议之巅 — 揭秘基础Paxos与Raft协议如何实现分布式系统达成一致性(非变种Paxos协议)
578 0
|
7月前
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
281 0
zookeeper的ZAB协议的原理以及底层源码实现超级详解 1
zookeeper的ZAB协议的原理以及底层源码实现超级详解
102 1
|
存储 算法 关系型数据库
浅谈 Raft 分布式一致性协议|图解 Raft
本篇文章将模拟一个KV数据读写服务,从提供单一节点读写服务,到结合分布式一致性协议(Raft)后,逐步扩展为一个分布式的,满足一致性读写需求的读写服务的过程。
804 0
浅谈 Raft 分布式一致性协议|图解 Raft
|
算法 Java 开发者
Zab 协议如何保持数据的一致性 | 学习笔记
快速学习 Zab 协议如何保持数据的一致性
205 0
Zab 协议如何保持数据的一致性 | 学习笔记
|
存储 算法 架构师
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
1675 0
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
|
算法
分布式学习十:ZAB协议
分布式学习十:ZAB协议
105 0
分布式学习十:ZAB协议