zookeeper基础整理

zookeeper笔记整理 大数据 zookeeper笔记 阅读详情

zookeeper简述

        ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件

        ZooKeeper 使用 Java 所编写,但是支持 Java 和 C 两种编程语言。

提供的功能包括:
        配置管理:集群中配置文件的同步
        分布式锁:解决分布式环境中数据同步问题
        集群管理:负载均衡,容灾处理等。
        命名服务:
        其他等等

1、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在工作过程中有三种状态:
                LOOKING:当前Server不知道leader是谁,正在搜寻
                LEADING:当前Server即为选举出来的leader
                FOLLOWING:leader已经选举出来,当前Server与之同步

2、zookeeper数据同步过程:

选完leader以后,zk就进入状态同步过程。
1. leader等待server连接;
2 .Follower连接leader,将最大的zxid发送给leader;
3 .Leader根据follower的zxid确定同步点;
4 .完成同步后通知follower 已经成为uptodate状态;
5 .Follower收到uptodate消息后,又可以重新接受client的请求进行服务了。
流程图如下所示:
这里写图片描述

3、zookeeper工作流程

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的工作流程简图如下所示,在实际实现中,流程要比下图复杂得多,启动了三个线程来实现功能。
这里写图片描述

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流程和Follower的唯一不同的地方就是observer不会参加leader发起的投票。

4、zookeeper中session的状态

        我们知道ZooKeeper允许客户端创建两种类型的节点:persistent、ephemeral,ephemeral类型的节点是与创建它的客户端一起共存亡的。

        那么这中间就有问题,ZooKeeper是如何知道客户端还存不存在呢?

        ZooKeeper是使用session来解决这个问题的,这也是为什么我们在客户端创建ZooKeeper实例时需要传入一个sessionout的参数。当客户端与Follower连接时,实际上是成功创建了一个session,Follower和Leader都保存了这个session信息(实际上Session的建立也是需要Leader同意的)。一方面,客户端会定期的向Follower发送Ping包来告诉这个Follower我还活着;另一方面,Leader也会定期向Follower发送ping包,一则检测它的Follower们是否至少有超过一半还活着,二则Follower们返回他们各自正在服务的客户端(未超时的session),来告诉Leader那些客户端还活着,这样Leader就可以删除那些客户端已经不存在的ephemeral类型的节点

5、zookeeper中的选举算法

        我们有一个zookeeper集群,有好几个节点。每个节点都可以接收请求,处理请求。那么,如果这个时候分别有两个客户端向两个节点发起请求,请求的内容是修改同一个数据。比如客户端c1,请求节点n1,请求是set a = 1; 而客户端c2,请求节点n2,请求内容是set a = 2;
那么最后a是等于1还是等于2呢? 这在一个分布式环境里是很难确定的。解决这个问题有很多办法,而zookeeper的办法是,我们选一个总统出来,所有的这类决策都提交给总统一个人决策,那之前的问题不就没有了么。

        如何在zookeeper集群中选举出一个leader,zookeeper使用了三种算法,具体使用哪种算法,在配置文件中是可以配置的,对应的配置项是”electionAlg”,其中1对应的是LeaderElection算法,2对应的是AuthFastLeaderElection算法,3对应的是FastLeaderElection算法.默认使用FastLeaderElection算法.

logicalclock -》逻辑时钟
Epoch -》 epoch,zxid的高32,表示leader的变动,选举的轮数,即逻辑时钟。Epoch会随着选举轮数的增加而递增。
zxid -》 事务id号,每个操作都有一个zxid, 64位
server id -》配置的myid,服务器编号

1、第一阶段:数据恢复阶段
        首先,每个在zookeeper服务器先读取当前保存在磁盘的数据,zookeeper中的每份数据,都有一个对应的id值,这个值是依次递增的,换言之,越新的数据,对应的ID值就越大.
2、第二阶段:首次发送自己投票信息
        在读取数据完毕之后,每个zookeeper服务器发送自己选举的leader,这个协议中包含了以下几部分的数据:
        2.1所选举leader的id(就是配置文件中写好的每个服务器的id) ,在初始阶段,每台服务器的这个值都是自己服务器的id,也就是它们都选举自己为leader.
        2.2 服务器最大数据的id,这个值大的服务器,说明存放了更新的数据.
        2.3逻辑时钟的值,这个值从0开始递增,每次选举对应一个值,也就是说
                2.3.1 如果在同一次选举中,那么这个值应该是一致的
                2.3.2 逻辑时钟值越大,说明这一次选举leader的进程更新.
        2.4 本机在当前选举过程中的状态,有以下几种:LOOKING,FOLLOWING,OBSERVING,LEADING。
3、第三阶段:接受其他机器的选举信息
        3.1如果所接收数据服务器的状态还是在选举阶段(LOOKING 状态),那么首先判断逻辑时钟值,又分为以下三种情况:
                3.1.1:如果发送过来的逻辑时钟大于目前的逻辑时钟,那么说明这是更新的一次选举,此时需要更新一下本机的逻辑时钟值,同时将之前收集到的来自其他服务器的选举清空,因为这些数据已经不再有效了.然后判断是否需要更新当前自己的选举情况.在这里是根据选举leader id,保存的最大数据id来进行判断的,这两种数据之间对这个选举结果的影响的权重关系是:首先看数据id,数据id大者胜出;其次再判断leader id,leader id大者胜出.然后再将自身最新的选举结果(也就是上面提到的三种数据广播给其他服务器)
                3.1.2: 发送过来数据的逻辑时钟小于本机的逻辑时钟,说明对方在一个相对较早的选举进程中,这里只需要将本机的数据发送过去就是了.
                3.1.3:两边的逻辑时钟相同,此时也只是调用totalOrderPredicate函数判断是否需要更新本机的数据(首先看数据id,数据id大者胜出;其次再判断leader id,leader id大者胜出.),如果更新了再将自己最新的选举结果广播出去就是了

        3.2:三种情况的处理完毕之后,再处理两种情况:
                3.2.1:服务器判断是不是已经收集到了所有服务器的选举状态,如果是那么根据选举结果设置自己的角色(FOLLOWING还是LEADER),然后退出选举过程就是了.
                3.2.2:即使没有收集到所有服务器的选举状态,也可以判断一下根据以上过程之后最新的选举leader是不是得到了超过半数以上服务器的支持,如果是,那么尝试在200ms内接收一下数据,如果没有新的数据到来,说明大家都已经默认了这个结果,同样也设置角色退出选举过程.

        3.3: 如果所接收服务器不在选举状态,也就是在FOLLOWING或者LEADING状态,做以下两个判断:
                3.3.1:如果逻辑时钟相同,将该数据保存到recvset,如果所接收服务器宣称自己是leader,那么将判断是不是有半数以上的服务器选举它,如果是则设置选举状态退出选举过程
                3.3.2 否则这是一条与当前逻辑时钟不符合的消息,那么说明在另一个选举过程中已经有了选举结果,于是将该选举结果加入到outofelection集合中,再根据outofelection来判断是否可以结束选举,如果可以也是保存逻辑时钟,设置选举状态,退出选举过程.(从这里可以看出,当某个节点已经确定选举结果不再处于LOOKING状态时,其收到LOOKING消息时都会直接回应选举的最终结果。结合上面那个比方,相当于某次选举结束了,这个时候来了选民4又发起一次新的选举,那么其他选民就直接告诉它当前的Leader情况)

zookeeper原理白话说明:

        Paxos描述了这样一个场景,有一个叫做Paxos的小岛(Island)上面住了一批居民,岛上面所有的事情由一些特殊的人决定,他们叫做议员(Senator)。议员的总数(Senator Count)是确定的,不能更改。岛上每次环境事务的变更都需要通过一个提议(Proposal),每个提议都有一个编号(PID),这个编号是一直增长的,不能倒退。每个提议都需要超过半数((Senator Count)/2 +1)的议员同意才能生效。每个议员只会同意大于当前编号的提议,包括已生效的和未生效的。如果议员收到小于等于当前编号的提议,他会拒绝,并告知对方:你的提议已经有人提过了。这里的当前编号是每个议员在自己记事本上面记录的编号,他不断更新这个编号。整个议会不能保证所有议员记事本上的编号总是相同的。现在议会有一个目标:保证所有的议员对于提议都能达成一致的看法。

        好,现在议会开始运作,所有议员一开始记事本上面记录的编号都是0。有一个议员发了一个提议:将电费设定为1元/度。他首先看了一下记事本,嗯,当前提议编号是0,那么我的这个提议的编号就是1,于是他给所有议员发消息:1号提议,设定电费1元/度。其他议员收到消息以后查了一下记事本,哦,当前提议编号是0,这个提议可接受,于是他记录下这个提议并回复:我接受你的1号提议,同时他在记事本上记录:当前提议编号为1。发起提议的议员收到了超过半数的回复,立即给所有人发通知:1号提议生效!收到的议员会修改他的记事本,将1好提议由记录改成正式的法令,当有人问他电费为多少时,他会查看法令并告诉对方:1元/度。

        现在看冲突的解决:假设总共有三个议员S1-S3,S1和S2同时发起了一个提议:1号提议,设定电费。S1想设为1元/度, S2想设为2元/度。结果S3先收到了S1的提议,于是他做了和前面同样的操作。紧接着他又收到了S2的提议,结果他一查记事本,咦,这个提议的编号小于等于我的当前编号1,于是他拒绝了这个提议:对不起,这个提议先前提过了。于是S2的提议被拒绝,S1正式发布了提议: 1号提议生效。S2向S1或者S3打听并更新了1号法令的内容,然后他可以选择继续发起2号提议。

        好,我觉得Paxos的精华就这么多内容。现在让我们来对号入座,看看在ZK Server里面Paxos是如何得以贯彻实施的

小岛(Island)——ZK Server Cluster
议员(Senator)——ZK Server
提议(Proposal)——ZNode Change(Create/Delete/SetData…)
提议编号(PID)——Zxid(ZooKeeper Transaction Id)
正式法令——所有ZNode及其数据

        貌似关键的概念都能一一对应上,但是等一下,Paxos岛上的议员应该是人人平等的吧,而ZK Server好像有一个Leader的概念。没错,其实Leader的概念也应该属于Paxos范畴的。如果议员人人平等,在某种情况下会由于提议的冲突而产生一个“活锁”(所谓活锁我的理解是大家都没有死,都在动,但是一直解决不了冲突问题)。Paxos的作者Lamport在他的文章”The Part-Time Parliament“中阐述了这个问题并给出了解决方案——在所有议员中设立一个总统,只有总统有权发出提议,如果议员有自己的提议,必须发给总统并由总统来提出。好,我们又多了一个角色:总统。

总统——ZK Server Leader

        又一个问题产生了,总统怎么选出来的?oh, my god! It’s a long story.
现在我们假设总统已经选好了,下面看看ZK Server是怎么实施的。
情况一:

        屁民甲(Client)到某个议员(ZK Server)那里询问(Get)某条法令的情况(ZNode的数据),议员毫不犹豫的拿出他的记事本(local storage),查阅法令并告诉他结果,同时声明:我的数据不一定是最新的。你想要最新的数据?没问题,等着,等我找总统Sync一下再告诉你。

情况二:

        屁民乙(Client)到某个议员(ZK Server)那里要求政府归还欠他的一万元钱,议员让他在办公室等着,自己将问题反映给了总统,总统询问所有议员的意见,多数议员表示欠屁民的钱一定要还,于是总统发表声明,从国库中拿出一万元还债,国库总资产由100万变成99万。屁民乙拿到钱回去了(Client函数返回)。

情况三:

        总统突然挂了,议员接二连三的发现联系不上总统,于是各自发表声明,推选新的总统,总统大选期间政府停业,拒绝屁民的请求。

Zookeeper面试整理-Zookeeper的基础概念 如果客户端长时间没有与 Zookeeper 集群通信,则会话会过期(Session Expiry),此时 Zookeeper 会自动删除与该会话相关的临时节点。Zookeeper 是一个开源的分布式协调服务,用于分布式应用中的配置管理、命名服务、分布式锁、集群管理等任务。Zookeeper 保证所有客户端对同一个 ZNode 的更新是顺序一致的,即所有客户端看到的更新顺序都是相同的。它提供了常见的原子操作,比如创建、删除、读取、设置数据等,保证了分布式环境下的一致性。 阅读详情

相关推荐

uni-app一键登录实战:从云函数配置到前端调用的完整指南

本文详细介绍了uni-app中一键登录功能的实现方法,从DCloud控制台配置到云函数开发,再到前端调用全流程。通过一键登录,用户无需输入账号密码即可快速使用本机手机号登录,显著提升用户体验和登录转化率。文章还提供了常见问题排查和安全合规要点,帮助开发者高效完成集成。

weixin_29291573的博客 446

zookeeper详解(四)-- 节点故障处理机制总结

1,概述  在介绍ZooKeeper处理节点故障的机制之前,我想先给大家讲一讲在一切都正常的情况下,ZooKeeper是如何工作的,也就是ZooKeeper处理客户端请求的流程。当然我只侧重讲解客服端的写请求部分。        过程如下:          在这主要的6步过程中,任何与之相关的节点都有可能出现故障,那么zooKeeper是如何来处理的呢,以保证服务的高可用性

guchuanyun111的博客 5487

用Python+OpenCV给斗地主做个‘外挂’:手把手教你写个桌面记牌器(附源码)

本文详细介绍了如何使用Python和OpenCV开发一个智能斗地主记牌器,包括环境搭建、图像采集与预处理、扑克牌识别技术及PyQt5界面设计。通过实战案例,帮助开发者掌握图像处理与界面开发的结合应用,提升游戏辅助工具的编写能力。

weixin_29079643的博客 546

Zookeeper的临时节点和永久节点

Zookeeper中节点分为两种:临时节点和永久节点。   临时节点有一个节点: 当创建临时节点的程序停掉之后,这个临时节点就会消失。 Zookeeper四种节点   Persistent是临时节点、    Persistent_sequential是临时有序节点。如00000、000001.....    Ephemeral是永久节点、   Ephemeral_sequential是永久有序节点。 ...

MrLiar的博客 2682

【02】【VisionMaster V4.0.0 】安装教程—— 授权文件更新报错:应用程序与本地LM通讯出错(怀疑电脑加密 和 上网受限 造成的 )

本文详细介绍了海康VisionMaster 4.0试用版的安装流程及常见问题解决方案。主要内容包括:1)从官网下载基础安装包、试用补丁和授权文件;2)按顺序安装主程序、补丁和授权文件;3)针对授权失败问题提供两种解决方案(更换未加密电脑或使用加密狗);4)说明试用版的功能限制(30天试用期、2个流程限制等)。文章特别指出电脑加密可能导致授权失败,并提供了安装报错时的处理建议,为初次使用者提供了完整的安装指导。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 7175

关于使用CMT2300A FIFO缓存区间设置为64Byte的问题

帮助你解决在使用CMT2300A 时遇到的各种问题,若有需要,请及时与我交流

teleger的博客 1429

ZooKeeper概念详解,最全整理

相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeepe...

春风化雨 9万+

电子产品的老化测试有哪些类型?

因此,越来越多的人在寻找“已知合格的测试连接器”,即经过测试具有可靠性和有效性的测试连接器,可以在老化测试中制定优化方法。例如对于芯片来说,不同的封装有不同的老化测试座,QFP老化测试座,QFN老化测试座等。老化测试时,专用老化电路板上的元件将承受等于或高于其额定工作条件的压力,以消除任何在额定寿命之前过早失效的元件。静态老化:在此类系统中,将测试设备安装到老化板上的插座中,然后放入老化箱中,其中每隔12至24小时施加电源和高温。动态老化:在动态老化系统中,设备以老化速度设定的最大速率进行测试。

软件技术的专栏 1839

ZooKeeper基础整理(一)

ZooKeeper基础整理一概述基本特性节点(Znode)节点特点节点类型节点信息命令Watcher机制(观察与通知)Watcher工作过程& 特性集群服务角色角色状态ZAB协议 概述 ZooKeeper是分布式协调服务程序, 可以实现分布式协调/通知, 命名服务, 负载均衡, 分布式同步, 微服务的注册中心, 配置中心等, 同时它也提供缓存服务, 但不同于 Redis, ZooKeeper的键是树形层次结构, 它主要用来存储协调状态以及中心配置等信息, 且每个节点的存放数据上限为1M. 基本特

Shawn Jeon`s blog 826

[原创]Linux 802.11n CSI tool安装教程(亲测可用)

Linux 802.11n CSI tool安装教程 前言 网上关于Intel5300 CSI tool的教程繁多,实际有效的可以说极少,各种疏漏错误。装的时候被坑无数次,终于调通。其实装这个工具并不太难,但是很多人把它弄得极其复杂,所以写这篇博客来帮助和我有一样困扰的人。我基本沿用的是官方文档旧版本的安装方案,针对其冗杂之处做了大量改进。 旧版安装教程: http://dhalperi....

u014645508的博客 4万+

地图之家总目录

地图之家总目录 cesium示例 leaflet示例

GIS之家家长 1万+

【分布式】Zookeeper的Leader选举

一、前言   前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。 二、Leader选举   2.1 Leader选举概述   Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。   (1) 服务器初始化启动。 ...

weixin_30877755的博客 1595

上万条对话白分析了?智能客服质检避坑指南:90%团队倒在这些误区

当前客服质检普遍存在投入产出失衡的现象,根源在于十大误区:过度关注单点技术指标而忽视端到端解决能力、僵化的话术模板限制AI应变、数据孤岛阻碍知识进化、盲目追求拟人化牺牲效率、传统整改机制跟不上机器速度等。破局需重构质检体系,包括建立决策树质检法、设计复杂问题测试集、构建实时数据闭环、重置AI专属评价指标、实施分钟级热修复机制等。关键在于将质检从被动纠错升级为主动赋能,通过根因分析、场景化反馈、标准化评分和数据驱动优化,打造"问题诊断-改进-验证"

2202_75469062的博客 1542

【笔记】zookeeper笔记整理

zookeeper相关知识点整理

遇事不决问春风 140

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Zookeeper 面试题分类整理

本文整理了Zookeeper相关的面试题,分为六个主要类别:基础概念、核心原理、集群管理、应用场景、性能优化和常见问题。内容涵盖Zookeeper的数据模型、节点类型、一致性保证机制(ZAB协议)、Watch机制、会话管理、Leader选举过程、分布式锁实现、配置中心应用等核心知识点。特别强调了Zookeeper的CP特性、集群最少3节点的原因、读写性能特点以及脑裂问题的解决方案。对于分布式系统协调服务的典型应用场景和监控要点也做了详细说明,并对比了Zookeeper与Eureka的主要区别。

weixin_39956506的博客 1076

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

zookeeper整理

简述ZAB协议 ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,实现分布式数据一致性 。所有客户端的请求都是写入到Leader进程中,然后,由Leader同步到其他节点,称为Follower。在集群数据同 步的过程中,如果出现Follower节点崩溃或者Leader进程崩溃时,都会通过Zab协议来保证数据一致性。 ZAB协议包括两种基本的模式:崩溃恢复和消息广播。 消息广播: 集群中所有的事务请求都由Leader节点来处理,其他服务器为F...

weixin_37895026的博客 1494

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Zookeeper整理

zookeeper: 分布式应用程序的分布式协调服务,主要用来解决分布式集群中应用系统的一致性问题。这里只做一下重点整理。

Nortyr的博客 388

ZooKeeper整理

ZooKeeper整理 什么是ZooKeeper Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。 每一个节点称为:ZNode,每个节点上会保存自己的数据和节点信息 节点可以拥有子节点,和少于1MB的数据存储在该节点下 节点可以分四大类: PERSISTENT:持久化节点 创建后一致存在于zk服务器上,主动删除才会小时 EPHEMERSAL:临时节点 -e 客户端会话失效,则这个节点就会被自动清除 PERSISTENT_SEQUEN

weixin_48672332的博客 293

zookeeper知识整理

ZOOKEEPER知识点数据模型ZNodesWatchesData AccessEphemeral Nodes 临时节点Sequence Nodes -- Unique NamingContainer NodesTTL Nodeszookeeper 时间状态的数据结构会话监控watches 含义 数据模型 hierarchal name space 有层次的命名空间 much like a fi...

u011076854的博客 291

Dubbo 集成 Zookeeper面试题整理

下面我为大家准备了一些 Dubbo 集成 Zookeeper 常见的的面试题,一些是我经常问别人的,一些是我过去面试遇到的一些问题,总结给大家,希望对大家能有所帮助。 Dubbo 面试题整理: https://blog.youkuaiyun.com/Soinice/article/details/83858764 文章长期更新,如需要,请收藏 1、Dubbo中zookeeper做注册中心,如果注册...

Soinice的博客 4242

Zookeeper资料整理

zookeeper学习笔记记录

weixin_47557748的博客 684

Zookeeper:Zookeeper资料整理

一、官网二、博主文章1、三、源码解读。

有才而性缓,定属大才。有智而气和,斯为大智。 900

Zookeeper—知识整理

Zookeeper是什么? Zookeeper是为分布式应用提供一致性服务的软件。 Zookeeper架构是什么样子的? Leader 领导 Follower 跟随者 Client 客户端 一般来说,同一时刻有一个Leader,多个Follower。 Zookeeper 下 Server 工作状态 服务器具有四种状态,分别是 LOOKING、FOLLOWING、LEADING、OBSERVING。 (1)LOOKING:寻 找 Leader 状态,也叫投票状态。当服务器处于该状态时,它会认为当前集群中

阳光大男孩!!!的博客 1000
上一篇: nginx使用gzip压缩文件---lz77算法---Haffman编码
下一篇: 并发和并行
zhangSir134
博客等级 码龄9年 7969粉丝 246原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值