Zookeeper的系统架构

news/2024/4/29 0:51:50/文章来源:https://blog.csdn.net/weixin_40587144/article/details/137064749

先看一张图:
在这里插入图片描述
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.luyixian.cn/news_show_1026711.aspx

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

相关文章

Redis高级面试题-2024

说说你对Redis的理解 Redis是一个基于Key-Value存储结构的开源内存数据库,也是一种NoSQL数据库。 它支持多种数据类型,包括String、Map、Set、ZSet和List,以满足不同应用场景的需求。 Redis以内存存储和优化的数据结构为基础,提…

java反射应用:调用一个公共方法来间接调取其它各类方法

1.公共方法里用反射 2.通过反射调取进来的其它方法里,该方法想要调用另一个beanA来查询数据库,用Autowired 是不行的 因为beanA载入不了。这时需要利用上下文对象来获取beanA,来实现该方法里再查库的目的。 // / 方法4 import org.springframework.con…

Redis进阶(持久化、复制、集群、多线程、缓存)

Redis进阶 1.Redis持久化1.1 什么是Redis持久化?为什么需要持久化?1.2 Redis持久化方式——RDB(Redis DataBase)1.2.1 什么是RDB?1.2.2 备份文件位置1.2.3 触发RDB的方式1.2.3.1 自动触发1.2.3.2 手动触发1.2.3.3 其他触发方式 1.2.4 RDB优缺…

人工智能与大数据、云计算等其他技术的关联和区别是什么?

人工智能(AI)、大数据和云计算是当今科技领域的三大热门技术,它们之间存在密切的关联,但也有一些明显的区别。以下是它们之间的关联和区别: AI-321 | 专注于AI工具分享的网站 AI工具集 | 人工智能工具箱 | 全球顶尖AI…

hcia datacom课程学习(3):http与https、FTP

1.超文本传输协议:http与https (1)用来访问www万维网。 wwwhttp+html+URLweb (2)它们提供了一种发布和接受html界面的方法:当在网页输入URL后,从服务器获取html文件来…

leetcode每日一题 2642.设计可以求最短路径的图

题目详情 给你一个有 n 个节点的 有向带权 图,节点编号为 0 到 n - 1 。图中的初始边用数组 edges 表示,其中 edges[i] [fromi, toi, edgeCosti] 表示从 fromi 到 toi 有一条代价为 edgeCosti 的边。 请你实现一个 Graph 类: Graph(int n, i…

MySQL面试汇总(一)

MySQL 如何定位慢查询 如何优化慢查询 索引及其底层实现 索引是一个数据结构,可以帮助MySQL高效获取数据。 聚簇索引和非聚簇索引 覆盖索引 索引创建原则 联合索引

【matlab程序】海洋资料的获取与分析--AO/NAO

海洋资料的获取与分析 相关数据代码等资料已上传入群中 海洋资料下载和介绍 AO和NAO指数均取自美国气候预测中心(Climate Prediction Center, CPC)发布的月平均指数,时间跨度为1950-2022年。由于AO和NAO在冬季最强,因此本文选取…

基于51单片机一氧化碳(CO)浓度检测报警仿真LCD显示( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机一氧化碳(CO)浓度检测报警仿真LCD显示( proteus仿真程序设计报告原理图讲解视频) 基于51单片机一氧化碳浓度检测报警仿真 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链…

栅格地图路径规划:基于小龙虾优化算法(Crayfsh optimization algorithm,COA)的机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

深度学习(三)vscode加jupyter notebook插件使用

0.前言 哎呀,我本次的实验是在新电脑上使用的,之前的笔记本上的环境什么的我都是很久以前弄好了的,结果到了新电脑上我直接忘了是该怎么配的了,不过万幸,花了点时间,查查补补,现在总算是可以了。…

C# 读取二维数组集合输出到Word预设表格

目录 应用场景 设计约定 范例运行环境 配置Office DCOM 实现代码 组件库引入 核心代码 DataSet转二维数组 导出写入WORD表格 调用举例 小结 应用场景 存储或导出个人WORD版简历是招聘应用系统中的常用功能,我们通常会通过应用系统采集用户的个人简历信息…

赛氪网亮相中国人工智能产业发展联盟会议,共筑赛事生态新篇章

2024年3月14日至15日,备受瞩目的中国人工智能产业发展联盟(AIIA)第十一次全体会议在海南海口盛大召开。作为人工智能领域的重要交流与合作平台,此次会议吸引了300余位联盟成员单位代表齐聚一堂,共襄盛举。在这场人工智…

04. 【Android教程】Android 工程解析及使用

在上一章中已经搭建好了 Android 开发环境,本章我们将一起通过 Eclipse 创建我们的第一个 Android App。 1. 创建 Android 工程 首先打开 Eclipse,在菜单栏依次选择“New” -> “Android App Project”。如果是第一次创建,可能没有“Andr…

Redis项目实战

本文用用代码演示Redis实现分布式缓存、分布式锁、接口幂等性、接口防刷的功能。 课程地址:Redis实战系列-课程大纲_哔哩哔哩_bilibili 目录 一. 新建springBoot项目整合Redis 二. Redis实现分布式缓存 2.1 原理及好处 2.2 数据准备 2.3 Redis实现分布式缓存…

软件杯 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目…

stm32之GPIO寄存器

文章目录 1 背景2 GPIO寄存器的类型2.1 端口配置寄存器2.2 设置/清除寄存器和位清除寄存器 3 总结 1 背景 C51单片机在进行数据的输入输出时,是直接操作与外部引脚关联的内部寄存器,例如,当设置P2_1为0时,就是将外部引脚的P21引脚…

Spark DAG

Spark DAG 什么是DAG DAG 是一组顶点和边的组合。顶点代表了 RDD, 边代表了对 RDD 的一系列操作。 DAG Scheduler 会根据 RDD 的 transformation 动作,将 DAG 分为不同的 stage,每个 stage 中分为多个 task,这些 task 可以并行运…

后端前行Vue之路(一):初识Vue

1.Vue是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方…

2.6、媒体查询(mediaquery)

概述 媒体查询作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景: 针对设备和应用的属性信息(比如显示区域、深浅色、分辨率)&#xff0…