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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 快速学习简单回顾 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 谁最大谁就是为可能是领导角色,只要满足过半机制就可以成为领导角色,后来启动的节点不会参与选举的

相关文章
|
监控 安全 物联网
Wi-Fi 简史(802.11a 到 802.11ax)
【4月更文挑战第15天】
3420 2
Wi-Fi 简史(802.11a 到 802.11ax)
|
数据采集 存储 监控
从零到一建设数据中台 - 数据治理路径
从零到一建设数据中台 - 数据治理路径
253 6
|
10月前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI驱动下的IT运维革命###
本文探讨了人工智能(AI)技术在IT运维领域的创新应用,强调其在提升效率、预防故障及优化资源配置中的关键作用,揭示了智能运维的新趋势。 ###
|
11月前
|
弹性计算 监控 安全
阿里云服务器自带多少DDoS防护?小编为你详细揭秘!
阿里云服务器自带多少DDoS防护?小编为你详细揭秘!
|
机器学习/深度学习 数据可视化 大数据
Python数据可视化的最新趋势
【8月更文挑战第20天】随着数据量激增及洞察需求提升,数据可视化在数据分析领域愈发关键。Python凭借其强大的库支持,已成为数据可视化的重要工具。当前趋势包括交互式可视化(如Bokeh、Plotly)和机器学习驱动的可视化(如Yellowbrick)。未来发展方向涉及:整合增强现实(AR)与虚拟现实(VR)技术,实现更为沉浸式的体验;自动化可视化,借助机器学习简化流程;强化大数据支持,优化处理效率;多模态数据可视化,综合多种类型数据;以及提高可视化工具的互操作性和自适应性,满足跨平台需求。Python将持续引领数据可视化领域的革新与发展。
|
SQL 存储 安全
【SQL刷题】Day3----SQL必会的常用函数专项练习
【SQL刷题】Day3----SQL必会的常用函数专项练习
295 0
【SQL刷题】Day3----SQL必会的常用函数专项练习
|
网络协议 数据中心 网络架构
华为网络配置(BGP)
BGP概述、BGP介绍、BGP的起源、BGP作用、BGP的特点、BGP的分类和区别、BGP报文交互中的角色、BGP的路由器号(Router ID)、BGP的报文、BGP状态机、BGP对等体之间的交互原则、BGP的路由属性、常见的BGP路由属性、BGP的选路规则、路由环路、BGP配置、案例、配置过程、测试
558 0
 华为网络配置(BGP)
|
小程序 前端开发 JavaScript
微信小程序--》小程序—全局数据共享和分包
⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。
515 0
微信小程序--》小程序—全局数据共享和分包
|
Linux Apache 弹性计算

热门文章

最新文章