Zookeeper 入门系列三 -- Zookeeper 工作原理

大数据入门之zookeeper的功能及工作原理,完结版   本文接“上文”继续讲解zookeeper相关的技术点,所以序号接上文。 想了解大数据其他知识点可以点击文章末尾“了解更多”查看 11.分布式与数据复制 Zookeeper作为一个集群提供一致的数据服务,自然,它要在所有机器间做数据复制。数据复制的好处: (1)、容错:一个节点出错,不致于让整个系统停止工作,别的节点可以接管它的工作; (2)、提高系统的扩展能力:把负载分布到多个... 阅读详情

1 Zookeeper 的数据复制

Zookeeper 作为一个集群提供一致的数据服务,自然,它要在所有机器间做数据复制。其优点有:

  1. 容错:一个节点出错,不致于让整个系统停止工作,别的节点可以接管它的工作
  2. 提高系统的扩展能力:把负载分布到多个节点上,或者增加节点来提高系统的负载能力
  3. 提高性能:让客户端本地访问就近的节点,提高用户访问速度

一般来说,从客户端读写访问的透明度来看,数据复制集群系统分下面两种:

  1. 写主:对数据的修改提交给指定的节点。读无此限制,可以读取任何一个节点。这种情况下客户端需要对读与写进行区别,俗称读写分离;
  2. 写任意:对数据的修改可提交给任意的节点,跟读一样。这种情况下,客户端对集群节点的角色与变化透明。

对 Zookeeper 来说,它采用的方式是写任意。通过增加机器,它的读吞吐能力和响应能力扩展性非常好,而写,随着机器的增多吞吐能力肯定下降,而响应能力则取决于具体实现方式,是延迟复制保持最终一致性,还是立即复制快速响应。

至于如何保证数据在集群所有机器的一致性,我们得首先介绍 Paxos 算法。

2 Paxos 算法

为了实现集群的高可用性,用户的数据往往要多重备份,多个副本虽然避免了单点故障,但同时也引入了新的挑战,那就是一致性问题。

Paxos 算法是用来解决分布式系统中,如何就某个值达成一致的算法。

详细了解 Paxos 算法可以参考这篇博客 分布式理论:深入浅出Paxos算法

Paxos 算法通过投票来对写操作进行全局编号,同一时刻,只有一个写操作被批准,同时并发的写操作要去争取选票,只有获得过半数选票的写操作才会被批准(所以永远只会有一个写操作得到批准),其他的写操作竞争失败只好再发起一轮投票,就这样,所有写操作都被严格编号排序,编号严格递增。当一个节点接受了一个编号为100的写操作,之后又接受到编号为99的写操作(因为网络延迟等很多不可预见原因),它马上能意识到自己数据不一致了,自动停止对外服务并重启同步过程。任何一个节点挂掉都不会影响整个集群的数据一致性(总 2n+1 台,除非挂掉大于 n 台)。

3 ZooKeeper 的工作原理

Zookeeper 的核心是原子广播,这个机制保证了各个 Server 之间的同步。实现这个机制的协议叫做 Zab 协议。Zab 协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab 就进入了恢复模式,当领导者被选举出来,且大多数 Server 完成了和 leader 的状态同步以后,恢复模式就结束了。状态同步保证了 leader 和 Server 具有相同的系统状态。

为了保证事务的顺序一致性,ZooKeeper 采用了递增的事务 id 号(zxid)来标识事务。所有的提议(proposal)都在被提出的时候加上了 zxid。实现中 zxid 是一个64位的数字,它高32位是 epoch 用来标识 leader 关系是否改变,每次一个 leader 被选出来,它都会有一个新的 epoch,标识当前属于那个 leader 的统治时期。低32位用于递增计数。

每个 Server 在工作过程中有三种状态:

  1. LOOKING:当前 Server 不知道 leader 是谁,正在搜寻
  2. LEADING:当前 Server 即为选举出来的 leader
  3. FOLLOWING:leader 已经选举出来,当前 Server 与之同步

4 选主流程

我们先来明确 Zookeeper 角色。
在这里插入图片描述
当 leader 崩溃或者 leader 失去大多数的 follower,这时候 ZooKeeper 进入恢复模式,恢复模式需要重新选举出一个新的 leader,让所有的 Server 都恢复到一个正确的状态。ZooKeeper 的选举算法有两种:一种是基于 basic paxos 实现的,另外一种是基于 fast paxos 算法实现的。系统默认的选举算法为 fast paxos。先介绍 basic paxos 流程:

  1. 选举线程由当前 Server 发起选举的线程担任,其主要功能是对投票结果进行统计,并选出推荐的 Server;
  2. 选举线程首先向所有 Server 发起一次询问(包括自己);
  3. 选举线程收到回复后,验证是否是自己发起的询问(验证 zxid 是否一致),然后获取对方 id(myid),并存储到当前询问对象列表中,最后获取对方提议的 leader 相关信息(id,zxid),并将这些信息存储到当次选举的投票记录表中;
  4. 收到所有 Server 回复以后,就计算出 zxid 最大的那个 Server,并将这个 Server 相关信息设置成下一次要投票的 Server;
  5. 线程将当前 zxid 最大的 Server 设置为当前 Server 要推荐的 Leader,如果此时获胜的 Server 获得 n/2 + 1 的 Server 票数, 设置当前推荐的 leader 为获胜的 Server,将根据获胜的 Server 相关信息设置自己的状态,否则,继续这个过程,直到 leader 被选举出来。

通过流程分析我们可以得出:要使 Leader 获得多数 Server 的支持,则 Server 总数必须是奇数 2n+1,且存活的 Server 的数目不得少于 n+1

每个 Server 启动后都会重复以上流程。在恢复模式下,如果是刚从崩溃状态恢复的或者刚启动的 server 还会从磁盘快照中恢复数据和会话信息,ZooKeeper 会记录事务日志并定期进行快照,方便在恢复时进行状态恢复。选主的具体流程图如下所示:
在这里插入图片描述
fast paxos 流程是在选举过程中,某 Server 首先向所有 Server 提议自己要成为 leader,当其它 Server 收到提议以后,解决 epoch 和 zxid 的冲突,并接受对方的提议,然后向对方发送接受提议完成的消息,重复这个流程,最后一定能选举出 Leader。其流程图如下所示:
在这里插入图片描述

5 同步流程

选完 leader 以后,ZooKeeper 就进入状态同步过程。

  1. leader 等待 server 连接;
  2. Follower 连接 leader,将最大的 zxid 发送给 leader;
  3. Leader 根据 follower 的 zxid 确定同步点;
  4. 完成同步后通知 follower 已经成为 uptodate 状态;
  5. Follower 收到 uptodate 消息后,又可以重新接受 client 的请求进行服务了。

流程图如下所示:
在这里插入图片描述

6 工作流程

6.1 Leader 工作流程

Leader 主要有三个功能:

  1. 恢复数据;
  2. 维持与 Learner 的心跳,接收 Learner 请求并判断 Learner 的请求消息类型;
  3. Learner 的消息类型主要有 PING 消息、REQUEST 消息、ACK 消息、REVALIDATE 消息,根据不同的消息类型,进行不同的处理。

PING 消息是指 Learner 的心跳信息;REQUEST 消息是 Follower 发送的提议信息,包括写请求及同步请求;ACK 消息是 Follower 的对提议的回复,超过半数的 Follower 通过,则 commit 该提议;REVALIDATE 消息是用来延长 SESSION 有效时间。

Leader 的工作流程简图如下所示,在实际实现中,流程要比下图复杂得多,启动了三个线程来实现功能。
在这里插入图片描述

6.2 Follower 工作流程

Follower 主要有四个功能:

  1. 向 Leader 发送请求(PING 消息、REQUEST 消息、ACK 消息、REVALIDATE 消息);
  2. 接收 Leader 消息并进行处理;
  3. 接收 Client 的请求,如果为写请求,发送给 Leader 进行投票;
  4. 返回 Client 结果。

Follower 的消息循环处理如下几种来自 Leader 的消息:

  1. PING 消息: 心跳消息;
  2. PROPOSAL 消息:Leader 发起的提案,要求 Follower 投票;
  3. COMMIT 消息:服务器端最新一次提案的信息;
  4. UPTODATE 消息:表明同步完成;
  5. REVALIDATE 消息:根据 Leader 的 REVALIDATE 结果,关闭待 revalidate 的 session 还是允许其接受消息;
  6. SYNC 消息:返回 SYNC 结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新。

Follower 的工作流程简图如下所示,在实际实现中,Follower 是通过5个线程来实现功能的。
在这里插入图片描述

observer 工作流程

observer 与 Follower 大致相同,唯一不同的地方就是 observer 不会参加 leader 发起的投票。

7 路由和负载均衡

当服务越来越多,规模越来越大时,对应的机器数量也越来越庞大,单靠人工来管理和维护服务及地址的配置信息,已经越来越困难。并且,依赖单一的硬件负载均衡设备或者使用 LVS、Nginx 等软件方案进行路由和负载均衡调度,单点故障的问题也开始凸显,一旦服务路由或者负载均衡服务器宕机,依赖其的所有服务均将失效。如果采用双机高可用的部署方案,使用一台服务器 “stand by”,能部分解决问题,但是鉴于负载均衡设备的昂贵成本,已难以全面推广。

一旦服务器与 ZooKeeper 集群断开连接,节点也就不存在了,通过注册相应的 watcher,服务消费者能够第一时间获知服务提供者机器信息的变更。利用其 znode 的特点和 watcher 机制,将其作为动态注册和获取服务信息的配置中心,统一管理服务名称和其对应的服务器列表信息,我们能够近乎实时地感知到后端服务器的状态(上线、下线、宕机)。Zookeeper 集群间通过 Zab 协议,服务配置信息能够保持一致,而 Zookeeper 本身容错特性和 leader 选举机制,能保证我们方便地进行扩容。

Zookeeper 中,服务提供者在启动时,将其提供的服务名称、服务器地址、以节点的形式注册到服务配置中心,服务消费者通过服务配置中心来获得需要调用的服务名称节点下的机器列表节点。通过一定的负载均衡算法,选取其中一台服务器进行调用。当服务器宕机或者下线时,由于 znode 非持久的特性,相应的机器可以动态地从服务配置中心里面移除,并触发服务消费者的 watcher。在这个过程中,服务消费者只有在第一次调用服务时需要查询服务配置中心,然后将查询到的服务信息缓存到本地,后面的调用直接使用本地缓存的服务地址列表信息,而不需要重新发起请求到服务配置中心去获取相应的服务地址列表,直到服务的地址列表有变更(机器上线或者下线),变更行为会触发服务消费者注册的相应的 watcher 进行服务地址的重新查询。这种无中心化的结构,使得服务消费者在服务信息没有变更时,几乎不依赖配置中心,解决了之前负载均衡设备所导致的单点故障的问题,并且大大降低了服务配置中心的压力。

通过 Zookeeper 来实现服务动态注册、机器上线与下线的动态感知,扩容方便,容错性好,且无中心化结构能够解决之前使用负载均衡设备所带来的单点故障问题。只有当配置信息更新时服务消费者才会去 Zookeeper 上获取最新的服务地址列表,其他时候使用本地缓存即可,这样服务消费者在服务信息没有变更时,几乎不依赖配置中心,能大大降低配置中心的压力。

通俗的说,就是把 ZooKeeper 作为一个服务的注册中心,在其中登记每个服务,每台服务器知道自己是属于哪个服务,在服务器启动时,自己向所属服务进行登记,这样,一个树形的服务结构就呈现出来了。服务的调用者需要到注册中心里面查找能提供所需服务的服务器列表,然后自己根据负载均衡算法,从中选取一台服务器进行连接。调用者取到服务器列表后,就可以缓存到自己内部,省得下次再取,当服务器列表发生变化,例如某台服务器宕机下线,或者新加了服务器,ZooKeeper 会自动通知调用者重新获取服务器列表。由于 ZooKeeper 并没有内置负载均衡策略,需要调用者自己实现,这个方案只是利用了 ZooKeeper 的树形数据结构、watcher 机制等特性,把 ZooKeeper 作为服务的注册和变更通知中心。

8 Zookeeper 特性

  1. 最终一致性:client 不论连接到哪个 Server,展示给它都是同一个视图,这是 Zookeeper 最重要的性能。
  2. 可靠性:具有简单、健壮、良好的性能,如果消息被到一台服务器接受,那么它将被所有的服务器接受。
  3. 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper 不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用 sync() 接口。
  4. 等待无关(wait-free):慢的或者失效的 client 不得干预快速的 client 的请求,使得每个 client 都能有效的等待。
  5. 原子性:更新只能成功或者失败,没有中间状态。
  6. 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有 Server 上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

参考:zookeeper的原理和应用(非常详细透彻)
zookeeper工作原理、核心机制
Nginx/ZooKeeper 负载均衡的差异

zookeeper进行 directories 删除与复制 操作 已经博主授权,源码转载自 https://pan.quark.cn/s/030c3eae102c 通过 zookeeper 实现了目录的删除及复制功能,该功能支持在多个实例间执行复制操作,并能简单地实现查询和更新操作。 由于之前上传的文件带有错误标签,导致无法删除该文件。 已尝试重新提交但未成功。 立即下载

相关推荐

zookeeper复制目录删除目录

实现了zookeeper节点的目录复制和删除,节点的创建、值更新 凑合能用 自己测试嫌手工复制麻烦又找不到现成的自己写了个 竟然不能免费~那就最低分拿去

zookeeper两大核心概念以及节点操作

通常情况 下,单个物理节点很容易达到性能,计算或者容量的瓶颈,所以这个时候就需要多个物理节点来共同完成某项任务,一个分布式系统的本质是分布在不同网络或计算机上的程序组件,彼此通过信息传递来协同工作的系统,而Zookeeper正是一个分布式应用协调框架,在分布式系统架构中有广泛的应用场景扩展点:集群和分布式的区别:分布式不一定就是不同的组件,同一个组件也可以,关键在于是否通过交换信息的方式进行协作。比如说Zookeeper的节点都是对等的,但它自己就构成一个分布式系统。

EnjoyFight的博客 1091

zookeeper删除、复制目录

实现 zookeeper 的目录删除和复制,复制可以在不同实例之间进行,实现了简单的查询和更新~ 之前传了一个有个label写错了 删不了 重新传一个

ZooKeeper面试专题及答案

1.ZooKeeper 是什么? ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现, 它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易 用的接口和性能高效、功能稳定的系统提供给用户。 客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所 连接的 zookeeper 机器来处理。对于写请求,这些请求会同时发给其他 zookeeper 机器并且达成一

qq_38472635的博客 428

变压器铁心100Hz振动噪声的COMSOL磁致伸缩仿真全流程

磁致伸缩是铁磁材料在磁场作用下发生尺寸变化的现象,也是变压器铁心振动与噪声产生的根本原因。由于应变与磁通密度近似成平方关系,50Hz电网激励下铁心振动基频为100Hz。借助COMSOL多物理场仿真,可将磁场计算结果映射为结构应力和变形,完成“电磁—结构”单向耦合分析。该技术广泛应用于变压器振动噪声预测、结构优化及故障诊断等工程场景。本文从磁致伸缩物理机理出发,系统梳理了材料参数、等效建模、边界条件设置和结果校核等关键步骤,帮助工程师掌握从磁致伸缩到结构变形的完整仿真链路,解决实际工程对标难题。

weixin_33796177的博客 312

【Unity动画系统】详解Root Motion动画在Unity中的应用(一)

什么时候勾选Bake into pose,当不希望动画带动游戏对象旋转时。在旋转的动画中一般是不用勾选的,因为就需要用它来带动我们的角色对象旋转。但在比如前进、后退、待机等动画来说,我们就可以勾选这里,以避免因动画文件本身的瑕疵而给我们带来的旋转。loop match:代表了这个动画在角度上的吻合度。如果这个动画在播放中转角过大,那么就会显示红色,告诉我们如果勾选bake into pose,则会带来不好的效果。

weixin_60154963的博客 6804

头歌实践平台:ZooKeeper之节点基本操作(一)、(二)--内有代码直接复制粘贴过关

ZooKeeper之节点基本操作(一) 第一关 zkServer.sh start zkCli.sh -server 127.0.0.1:2181 create -e /enode "" create /spnode "" quit 第二关 zkServer.sh start zkCli.sh -server 127.0.0.1:2181 create /myNode "" create /myNodeTmp "" create /myNodeTmp/firstChildTmp "" creat

m0_59517425的博客 1万+

告别裸机SPI!用HAL库和CubeMX重新玩转STM32与MAX6675温度传感器

本文详细介绍了如何利用STM32CubeMX和HAL库高效驱动MAX6675温度传感器,实现稳定可靠的热电偶温度监测系统。通过图形化配置SPI接口和封装专用驱动函数,开发者可以快速构建嵌入式温度测量方案,适用于工业控制、物联网设备等多种应用场景。

weixin_42525632的博客 234

zookeeper小助手实现目录复制删除操作

背景 zookeeper有几个ui工具,但都不支持目录的复制,反正我没有找到。做项目时配置中心使用zk来维护的,当重新搭建环境想私有化一份配置时,那个费劲,既然找不到自己写一个小助手,作为其他ui工具的补充吧~ 需求 先写个能凑合用,写一个GUI的,得空再把它写成web的~ 且做的时候比较急,并没有什么设计可言,可能代码稍乱,得空整理一下,马上放假了~ 先放上~build 简单需求: ...

约会远行的专栏 7527

Codesys电子凸轮Cam表实战:从可视化配置到程序化构建

本文详细介绍了Codesys电子凸轮Cam表的实战应用,从可视化配置到程序化构建的全过程。通过包装机和印刷机案例,解析Cam表的基础设置、调试技巧及动态构建方法,帮助工程师快速掌握电子凸轮技术,提升运动控制精度和效率。

weixin_29309785的博客 298

使用 MATLAB/Simulink + Simscape Electrical + Simulink Design Optimization,构建一个基于SiC/GaN的Z源逆变器在储能系统中的软启

《手把手教你学Simulink:Z源逆变器在储能系统中的应用》摘要 本文详细介绍了使用MATLAB/Simulink构建Z源逆变器储能系统仿真模型的全过程。Z源逆变器凭借其独特的阻抗网络结构,解决了传统逆变器在直通保护和升压能力方面的痛点。文章通过6个关键步骤:主电路搭建、调制策略设计、软启动实现、仿真分析、效率对比和工程问题解决方案,完整展示了Z源逆变器从理论到仿真的实现路径。重点讲解了直通零矢量SPWM调制策略和渐进式升压比控制方法,验证了系统93.3%的效率和优异的抗扰性能。该模型为光伏储能、电动汽车

MHD0815的博客 122

zookeeper系列(五)—集群工作原理

概要 zookeeper集群的目的是为了保证系统的性能承载更多的客户端连接设专门提供的机制。通过集群可以实现以下功能: 读写分离:提高承载,为更多的客户端提供连接,并保障性能。 主从自动切换:提高服务容错性,部分节点故障不会影响整个服务集群。 搭建集群至少需要三台服务器,并且强烈建议使用奇数个服务器。因为zookeeper 通过判断大多数节点的存活来判断整个服务是否可用。比如3个节点,挂掉了2...

牧码心 1847

Flow Matching05:概率路径与插值【概率路径:线性插值路径(最简单)、高斯插值路径】【先尝试线性插值,看效果如何;若不够好,尝试高斯插值】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 173

ZooKeeper工作原理

在Zookeeper集群中,Leader是负责管理集群事务的节点。它负责处理所有的写请求,并将这些请求转化为事务,并提交事务日志。Leader节点还负责发起和决议投票过程,以及更新系统状态。:学习者是Zookeeper中用于接收客户端请求并返回结果的节点。:跟随者是学习者的一种,它们参与到Zookeeper的投票过程中,帮助选举出Leader,并且同步Leader的状态。跟随者也可以处理客户端的读请求。:观察者也是学习者的一种,但它们不参与投票过程。

weixin_72583321的博客 1531

Allegro如何去掉PCB内层未使用的过孔孔环?

在用Allegro进行PCB设计过程中,遇到铺铜铜箔被焊盘大量割断,导致铺铜不完整,这样就会导致铺铜过电流太小,影响板的性能,严重的会导致板工作不稳定,甚至不工作。解决办法:是去掉内层未使用的过孔孔环,增大过铜箔面积。

bhxc809751502的博客 2571

小梅哥Xilinx ZYNQ学习笔记2——38译码器

译码器(Decoder)是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。本设计的是通用译码器。三八译码器,即是 3 种输入状态翻译成 8 种输出状态。1.case开始开始,endcase结束;2.数字声明时,合法的基数格式有 4 中,包括:十进制('d 或 'D),十六进制('h 或 'H),二进制('b 或 'B),八进制('o 或 'O)。数值可指明位宽,也可不指明位宽。

m0_51430584的博客 1636

Zookeeper工作原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ZooKeeper入门(三)zookeeper的Watcher机制

process方法是Watcher接口中的一个回调方法,当ZooKeeper向客户端发送一个Watcher事件通知时,客户端就会对相应的process方法进行回调,从而实现对事件的处理。 import java.util.concurrent.CountDownLatch; import org.apache.zookeeper.CreateMode; import org.apache.z...

怪只怪满眼尽是人间烟火 885

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Zookeeper工作原理和设计目的

Zookeeper设计目的1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。 2.可靠性:具有简单、健壮、良好的性能,如果消息被到一台服务器接受,那么它将被所有的服务器接受。 3.实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个...

展望未来 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Zookeeper入门教程

一、Zookeeper 入门 1.1 概述 Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。 Zookeeper工作机制 1.2 Zookeeper特点 1.3 数据结构 ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个ZNode 都可以通过其路径唯一标识。 1.4 应用场景 提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服

cosuyo的博客 2419

zookeeper从入门到精通

1、工作原理 服务器在zk上注册(创建临时节点),客户端监听zk上的节点信息,如果某个服务器挂了,zk上节点删除,客户端就会知道某个服务器挂了 2、zk存储的数据是很小的,只是一些配置文件的数据 3、应用场景 1)统一命名服务:如www.baidu.com对应的多个ip地址 2)统一配置管理:将集群配置信息写到一个znode,各个节点监听这个znode 3)统一集群管理:集群各个节点的健康状态写到...

laogong的博客 414

Zookeeper工作原理(详细)

文章目录1、Zookeeper的角色2、Zookeeper 的读写机制3、Zookeeper 的保证4、Zookeeper节点数据操作流程5、Zookeeper leader 选举6、zxid7、Zookeeper工作原理8、数据一致性与paxos 算法9、Observer10、 为什么zookeeper集群的数目,一般为奇数个?12、Zookeeper 的节点 1、Zookeeper的角色 领导者(leader),负责进行投票的发起和决议,更新系统状态 学习者(learner),包括跟随者(follow

憧憬的专栏 1085

【Zookeeper系列六】Zookeeper 工作原理

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34310369的博客 174

大数据入门:ZooKeeper工作原理

在大数据生态当中,分布式集群当中的一个重要组件,就是Zookeeper,作为集群运行的重要管理者,正如其名字“动物园管理员”所示,负责集群运行的诸多事宜。今天的大数据入门分享,我们就来具体讲讲,ZooKeeper工作原理。 在Zookeeper的工作流程当中,各个节点当中,主要涉及到三个角色和四种状态,这也是构成Zookeeper体系架构的重要组成部分。 ZooKeeper角色和状态 角色:Leader,Follower,Observer。 状态:Leading,Following,Observ

shuimuzh123的博客 379

ZooKeeper之(三)工作原理

1、ZooKeeper集群的系统架构 为了保证数据的一致性,ZooKeeper对机器进行了角色划分: 领导者leader:负责投票的发起和决议,更新系统的状态。 学习者-跟随者follow:用户接收客户的请求并向客户端返回结果,在选主过程中参与投票 学习者-观察者observer:接收客户端连接,将写请求转发给leader节点;但不参与投票,只同步leader的状态。主要是为了扩展系统,提高系统的...

chenxiao198866666的博客 486
上一篇: Zookeeper 入门系列二 -- Zookeeper 应用场景
下一篇: Spring 面经
Geffin
博客等级 码龄8年 209粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值