Zookeeper的系统架构

先看一张图:
在这里插入图片描述
ZooKeeper 的架构图中我们需要了解和掌握的主要有:

1: ZooKeeper分为服务器端(Server) 和客户端(Client),客户端可以连接到整个ZooKeeper服务的任意服务器上(除非 leaderServes 参数被显式设置, leader 不允许接受客户端连接

2: 客户端使用并维护一个 TCP 连接,通过这个连接发送请求、接受响应、获取观察的事件以及发送心跳。如果这个 TCP 连接中断,客户端将自动尝试连接到另外的 ZooKeeper服务器。客户端第一次连接到 ZooKeeper服务时,接受这个连接的ZooKeeper服务器会为这个客户端建立一个会话。当这个客户端连接到另外的服务器时,这个会话会被新的服务器重新建立。

3: 上图中每一个Server代表一个安装Zookeeper服务的机器,即是整个提供Zookeeper服务的集群(或者是由伪集群组成)

4: 组成ZooKeeper服务的服务器必须彼此了解。它们维护一个内存中的状态图像,以及持久存储中的事务日志和快照, 只要大多数服务器可用,ZooKeeper服务就可用

5: ZooKeeper 启动时,将从实例中选举一个 leader,Leader 负责处理数据更新等操作,一个更新操作成功的标志是当且仅当大多数Server在内存中成功修改数据。每个Server 在内存中存储了一份数据

6: Zookeeper是可以集群复制的,集群间通过Zab协议(Zookeeper Atomic Broadcast)来保持数据的一致性

7: Zab协议包含两个阶段:leader election阶段和Atomic Brodcast阶段。

  • 集群中将选举出一个leader,其他的机器则称为follower,所有的写操作都被传送给leader,并通过brodcast将所有的更新告诉给follower。

  • 当leader崩溃或者leader失去大多数的follower时,需要重新选举出一个新的leader,让所有的服务器都恢复到一个正确的状态。

  • 当leader被选举出来,且大多数服务器完成了 和leader的状态同步后,leadder election 的过程就结束了,就将会进入到Atomic brodcast的过程。

  • Atomic Brodcast同步leader和follower之间的信息,保证leader和follower具有形同的系统状态。

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

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

相关文章

Flink on Kubernetes (flink-operator) 部署Flink

flink on k8s 官网 https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.1/docs/try-flink-kubernetes-operator/quick-start/ 我的部署脚本和官网不一样,有些地方官网不够详细 部署k8s集群 注意,按照默认配置至少有两台wo…

手机短信验证码自动转发到服务器

今天写一个自动化处理程序,需要验证码登录,怎么样把手机收到的短信自动转发到服务器接口呢? 利用ios手机快捷指令的功能 打开快捷指令点击中间自动化点击右上角号选择信息信息包含选取,输入验证码选择立即执行点击下一步按下图配…

vue + LogicFlow 实现流程图展示

vue LogicFlow 实现流程图展示 1.背景 部门主要负责低代码平台,配置端负责配置流程图,引擎端负责流程执行,原引擎端只负责流程执行控制以及流程历史列表展示。现在提出个新的要求,认为仅历史记录不直观,需要在展示完…

Overcooked!(并查集区间元素合并优化)

本题链接:登录—专业IT笔试面试备考平台_牛客网登录—专业IT笔试面试备考平台_牛客网登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 5 5 1 1 2 3 1 2 2 2 4 3 1 4 3 2 5 输出 YES YES NO 思路: 根据题意,这…

数据结构初阶:排序

排序的概念及其运用 排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记录&…

HR岗位管理:岗位职级管理体系是什么?概念、知识及方法工具梳理

岗位是组织中最具体、最小的一个基本单位。组织一般都是因事设岗,因而岗位是组织要求个体完成一项或多项责任而赋予个体的权力的总和。岗位是与人相对应的,通常一个岗位只能由一个人担任。正是因为人与岗位相匹配,所以企业人力资源成本管控的…

Component is not found in path “miniprogram_npm/@vant/

在微信小程序中使用vantUI库时,xxx.json内引入vant组件,报错Component is not found in path "miniprogram_npm/vant/checkbox/index ,按报错路径查看,在报错目录下的包,文件完好存在,如下截图 找到n…

STM32启动方式

s在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。 启动方式:从内部的Flash中启动、 存储器映射: 0x0000 0000 -----0x0800 0000 映射的内部Flash

【保姆级讲解如何Stable Diffusion本地部署】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

sheng的学习笔记-AI-YOLO算法,目标检测

AI目录:sheng的学习笔记-AI目录-CSDN博客 目录 目标定位(Object localization) 定义 原理图 具体做法: 输出向量 图片中没有检测对象的样例 损失函数 ​编辑 特征点检测(Landmark detection) 定义&a…

SCI一区顶刊优化算法改进:基于强化学习的神经网络算法RLNNA,你绝对没见过,非常新颖!

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 神经网络优化算法NNA: 基于强化…

利用Python进行数据可视化Plotly与Dash的应用【第157篇—数据可视化】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 利用Python进行数据可视化Plotly与Dash的应用 数据可视化是数据分析中至关重要的一环&…

SpringBoot集成 itextpdf 根据模板动态生成PDF

目录 需求说明前期准备Spring Boot 集成添加依赖构建工具类构建MultipartFile编辑PDF模板Java代码设置对应form的key-value 需求说明 根据合同模板,将动态的合同标签,合同方以及合同签约时间等动态的生成PDF,供用户下载打印。 前期准备 安…

Linux学习_进程

1.进程 概念:程序的一个执行实例,正在执行的程序等,担当分配系统资源(CPU时间,内存)的实体,进程PCB自己的代码和数据 PCB:进程信息被放在一个叫做进程控制块的数据结构中&#xff…

左手医生:医疗 AI 企业的云原生提效降本之路

相信这样的经历对很多人来说并不陌生:为了能到更好的医院治病,不惜路途遥远奔波到大城市;或者只是看个小病,也得排上半天长队。这些由于医疗资源分配不均导致的就医问题已是老生长谈。 云计算、人工智能、大数据等技术的发展和融…

【嵌入式——C语言】VScode编写C程序、交叉编译

【嵌入式——C语言】VScode编写C程序、交叉编译 第一步第二步第三步第四步第五步第六步第七步第八步 第一步 下载Visual Studio Code下载地址 然后直接安装就可以了。 第二步 前提是你的电脑上安装了WSL。。。 打开vscode的扩展,输入WSL进行安装 安装完之后在窗…

装饰器模式实战运用(功能增强)

目录 前言 装饰器模式与代理模式的区别 UML plantuml 类图 实战代码 mybatis cache 前言 装饰器模式和代理模式在使用上很相似,都是在不修改原始类代码的情况下,动态地给真实对象的方法做增强。 装饰器模式是通过创建一个包装对象来包裹原有对象…

c# RichTextbox添加行号

使用另一个RichTextBox放在要添加行号的左边 使用以下代码 //uiRichTextBox1为右侧文本框,uiRichTextBox2为左侧文本框int lineIndex 0;private void uiRichTextBox1_TextChanged(object sender, EventArgs e){if (lineIndex > uiRichTextBox1.Lines.Length){L…

腾讯云4核8G12M云服务器一年646元,送3个月时长

2024年腾讯云4核8G服务器租用优惠价格:轻量应用服务器4核8G12M带宽646元15个月,CVM云服务器S5实例优惠价格1437.24元买一年送3个月,腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图: 腾讯云4核8G服务器优惠价格 轻…

若依 3.8.7版本springboot前后端分离 整合mabatis plus

1.去掉mybatis 这一步我没有操作&#xff0c;看别人的博客有说不去掉可能冲突&#xff0c;也可能不冲突&#xff0c;我试下来就没去掉如需要去除&#xff0c;到总的pom.xml中properties标签下的<mybatis-spring-boot.version>x.x.x</mybatis-spring-boot.version>…