游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

直观理解Zookeeper分布式一致性协议ZAB

  ZAB是Zookeeper使用的分布式一致性协议,英文全称是:ZookeeperAtomicBroadcast,因此ZAB也称之为Zookeeper原子广播协议。在解决分布式一致性方面,Zookeeper并没有使用Paxos,而是采用了ZAB协议。基于ZAB协议,Zookeeper实现一种主备模式的系统架构来保持集群中主备副本之间数据的一致性。ZAB协议包括两种基本模式:消息广播(MessageBroadcasting)和崩溃恢复(LeaderActivation)。下面来详细介绍这两种基本模式的实现过程。消息广播
  消息广播是Zookeeper用来保证写入事务一致性的方法,在Zookeeper集群中,存在以下三种角色的节点:
  Leader:Zookeeper集群的核心角色,在集群启动或崩溃恢复中通过Follower参与选举产生,为客户端提供读写服务,并对事务请求进行处理。
  Follower:Zookeeper集群的核心角色,在集群启动或崩溃恢复中参加选举,没有被选上就是这个角色,为客户端提供读取服务,也就是处理非事务请求,Follower不能处理事务请求,对于收到的事务请求会转发给Leader。
  Observer:观察者角色,不参加选举,为客户端提供读取服务,处理非事务请求,对于收到的事务请求会转发给Leader。使用Observer的目的是为了扩展系统,提高读取性能。
  下面通过几张图对ZAB的消息广播过程进行简单的介绍。Zookeeper各节点会接收来自客户端的请求,如果是非事务请求,各节点自行进行相应的处理。若接收到的是客户端的事务请求,如果当前节点是Follower则将该请求转发给当前集群中的Leader节点进行处理。
  Leader接收到事务处理的请求后,将向所有的Follower节点发出Proposal提议,并等待各Follower的Ack反馈。在广播事务之前Leader服务器会先给这个事务分配一个全局单调递增的唯一ID,也就是事务ID(zxid),每一个事务必须按照zxid的先后顺序进行处理。而且Leader服务器会为每一个Follower分配一个单独的队列,然后将需要广播的事务放到队列中。
  各Follower节点对Leader节点的Proposal进行Ack反馈,Leader对接收到的Ack进行统计,如果超过半数Follower进行了Ack,此时进行下一步操作,否则之间向客户端进行事务请求失败的Response。
  如果Leader节点接收到了超过半数的Ack响应,此时Leader会向所有的Follower发出事务Commit的指令,同时自己也执行一次Commit,并向客户端进行事务请求成功的Response。
  Zookeeper的消息广播过程类似2PC(TwoPhaseCommit),ZAB仅需要超过一半以上的Follower返回Ack信息就可以执行提交,大大减小了同步阻塞,提高了可用性。崩溃恢复
  在Zookeeper集群启动、运行过程中,如果Leader出现崩溃、网络断开、服务停止或重启等异常情况,或集群中有新服务器加入时,ZAB会让当前集群快速进入崩溃恢复模式并选举出新的Leader节点,在此期间整个集群不对外提供任何读取服务。当产生了新的Leader后并集群中过半Follower完成了与Leader的状态同步,那么ZAB协议就会让Zookeeper集群从崩溃恢复模式转换成消息广播模式。崩溃恢复的目的就是保证当前Zookeeper集群快速选举出一个新的Leader并完成与其他Follower的状态同步,以便尽快进入消息广播模式对外提供服务。
  Zookeeper崩溃恢复的主要任务就是选举Leader(LeaderElection),Leader选举分两个场景:一个是Zookeeper服务器启动时Leader选举,另一个是Zookeeper集群运行过程中Leader崩溃后的Leader选举。在详细介绍Leader选举过程之前,需要先介绍几个参数:myid:服务器ID,这个是在安装Zookeeper时配置的,myid越大,该服务器在选举中被选为Leader的优先级会越大。zxid:事务ID,这个是由Zookeeper集群中的Leader节点进行Proposal时生成的全局唯一的事务ID,由于只有Leader才能进行Proposal,所以这个zxid很容易做到全局唯一且自增。因为Follower没有生成zxid的权限。zxid越大,表示当前节点上提交成功了最新的事务,这也是为什么在崩溃恢复的时候,需要优先考虑zxid的原因。epoch:投票轮次,每完成一次Leader选举的投票,当前Leader节点的epoch会增加一次。在没有Leader时,本轮此的epoch会保持不变。
  另外在选举的过程中,每个节点的当前状态会在以下几种状态之中进行转变。LOOKING:竞选状态。FOLLOWING:随从状态,同步Leader状态,参与Leader选举的投票过程。OBSERVING:观察状态,同步Leader状态,不参与Leader选举的投票过程。LEADING:领导者状态。集群启动时的Leader选举
  假设现在存在一个由5个Zookeeper服务器组成的集群Sever1,Sever2,Sever3,Sever4和Sever5,集群的myid分别为:1,2,3,4,5。依次按照myid递增的顺序进行启动。由于刚启动时zxid和epoch都为0,因此Leader选举的关键因素成了myid。启动Sever1,此时整个集群中只有Sever1启动,Sever1无法与其他任何服务建立通信,立即进入LOOKING状态,此时Server1给自己投1票(上来都觉得自己可以做Leader),由于1不大于集群总数的一半,即2,此时Sever1保持LOOKING状态。启动Sever2,此时Sever2与Server1建立通信,Sever1和Sever2互相交换投票信息,Server1投票的myid为1,Server2投票的myid为2,此时选取myid最大的,因此Sever1的投票会变成2,但是由于目前投票Server2的服务器数量为2台,小于集群总数的一半2,因此Sever1和Sever2继续保持LOOKING状态。启动Sever3,此时三台服务器之间建立了通信,Server3进入LOOKING状态,并与前两台服务器交换投票信息,Server1和Server2的投票信息为2,Server3投票自己,即myid为3,这个时候选择myid最大的作为Leader。此时集群中投票3的服务器数量变成了3台,此时32,Sever3立刻变成LEADING状态,Sever1和Sever2变成FOLLOWING状态。启动Sever4,Sever4进入LOOKING状态并与前三台服务器建立通信,由于集群中已经存在LEADING状态的节点,因此,Sever4立刻变为FOLLOWING状态,此时Sever3依旧处于LEADING状态。
  5。动Sever5,Sever5与Sever4一样,在与其他服务器建立通信后会立刻变为FOLLOWING状态,此时Sever3依旧处于LEADING状态。
  最终整个Zookeeper集群中,Server3成为Leader,Server1,Server2,Server4和Server5成为Follower,最终Server3的epoch加一。Leader崩溃时的Leader选举
  在Zookeeper集群刚启动的时候,zxid和epoch并不参与群首选举。但是如果Zookeeper集群在运行了一段时间之后崩溃了,那么epoch和zxid在Leader选举中的重要性将大于myid。重要性的排序为:epochzxidmyid。当某一个Follower与Leader失去通信的时候,就会进入Leader选举,此时Follower会跟集群中的其他节点进行通信,但此时会存在两种情况:Follower与Leader失去通信,但此时集群中的Follower并未崩溃,且与其他Follower保持正常通信。此时当该Follower与其他Follower进行通信时,其他Follower会告诉他,老大还活着,这个时候,Follower仅需要与Leader建立通信即可。Leader真的崩溃了,此时集群中所有节点之间会进行通信,当得知老大挂了之后,每个节点都会开启争老大模式,各自会将当前节点最新的epoch,zxid和myid发送出来,参与投票,此时各节点之间会参照epochzxidmyid进行Leader选举,最后投票数超过集群数量一般的节点会成为新的Leader。
  这种崩溃后的Leader选举机制也很好理解,如果Leader挂了,优先选择集群中最后做过(epoch)Leader的节点为新的Leader节点,其次选取有最新事务提交的节点(zxid)为Leader,最后才按默认的最大机器编号(myid)进行投票。

老蒋败退宝岛时,带走了儒释道的三个代表人物,他们后来怎样?1949年10月1日,新中国正式成立。这不仅对于中国的政治、经济是一个大的革新,对于文化同样如此。从此以后,中国人民摆脱了几千年的封建枷锁,开始向着新世界迈进。也是在同一……又搞事?曝韩国残奥队再搞特殊,自备饭菜以咸菜泡菜为主回顾本次北京冬奥会可以发现,在前段时间,韩国队基本上是备受关注的队伍。这个队伍之所以备受关注,不是因为他们取得的成绩有多么漂亮,而是在整个冬奥会过程当中,他们无理取闹制造了很多……八路军115师,强大超乎想象,东野华野和华北三支大军半出其门八路军115师,强大超乎想象,东野、华野和华北三支大军半出其门!抗日战争中的朱德和毛泽东八路军三大主力师的异同红军主力改编为八路军后,毛泽东给八路军三个师的战略任务……唐山大地震后,伟人下达人生最后一封绝密电报,徐帅为何黯然泪下唐山大地震后,伟人下达人生最后一封绝密电报,徐帅为何黯然泪下文豫史探今编辑豫史探今1976年,伟大的领袖毛主席永远离开了我们,在其生命垂危的临终之际,他老人家……吞辽灭宋的金国,为何在巅峰时期没能吞下蒙古我们都知道,金国在完颜阿骨打的带领下发展壮大,实现了吞辽灭宋的大业,有着女真不满万,满万不可敌的称号。然而金国在灭亡辽国之后,并没能趁着兵强马壮去征服辽国之前统辖的蒙古高原,反……今天,我们把小米户外电源1000Pro摔了,损失惨重?前言望着窗外的大好风景,内心又有多少次想要来一场说走就走的自驾旅行呢!而在户外,电能储备又成为最难解决的问题之一。而笔者了解到,在各家千瓦级别户外电源的激烈竞争情况下,小……贵州三线建设遗址,天然的大溶洞中,生产战斗机零部件三线,曾经关系国家命运的大建设,而今又有多少人了解。上世纪60年代,为了应对复杂的国际政治局势以及发生大规模军事冲突的可能性,国家做出了一项重大的战略决策。为加强战备,逐步改变……刘秀不顾千人反对杀了一人,绝了一学派,一年后才发现刘秀真高明光武帝刘秀,这位被评为最有学问、最会打仗、最会用人的皇帝在建武十五年十一月下令将他最得力的部下入狱!罪名是度田不实。从此,多米诺骨牌效应开始了,先是天下学者群龙无首,后竟……学习恩来周恩来振兴华夏之心周恩来振兴华夏之心学习恩来1911年,周恩来在沈阳一所小学读书时,一次修身课上,老师问:读书为了什么?周恩来回答:为了中华之崛起。1915年,周恩来在天津南开学校所……开国元帅徐向前,晚年为什么不肯穿元帅服?他本人的解释让人神伤作为开国十大元帅之一的徐向前,为国家屡立战功。就连刘伯承对他当年的战绩都赞不绝口:向前不减当年勇,不愧是红四方面军总指挥啊,这场仗,打得干净利落!而徐向前对自己的军……1947年,邓小平深夜接到毛主席密电,开头一句话竟是看完立刻提到大别山,了解过中国近代史的人,大概都对这个名字非常的耳熟,最早的时候,西汉汉武帝祭祀之后路过大别山,对大别山的美景感慨不已。自此,大别山在历史上才拥有了姓名。而我们如……悄悄涨价!新的刺客出现了?共享充电宝偷摸涨价充电太慢、好借难还。。。。。。槽点不断近日共享充电宝用1小时却扣费99元再次引发网友讨论共享充电宝价格偷摸上涨201……
唐朝巅峰时那么强大,为什么还是无法灭掉吐蕃?唐朝是我们很多人都津津乐道的一个朝代,在现在美国或者其他国家都会有唐人街,而这个唐人的称号就是起源于唐朝。由此可见唐朝给世界带来了巨大的印象。唐朝对外发动了战争很多,相传在唐朝……秦始皇陵如果有水银河,经过2200多年水银还会流动吗?我们都知道秦始皇的陵墓在哪里,但是从来没有人进去过,因为用现在的高科技扫描过秦始皇的陵墓,显示出没有人进入的状态,此外,迄今为止因为我们没有很好保留秦始皇陵墓文物的方法,所以秦……三星GalaxyS23发布不涨价押注中国市场望提振盈利集微网消息,三星今(2)日发布新版GalaxyS23,令人意外的是,尽管面对材料成本不断上涨的压力,三星未提价,新机配备更好的摄像头,比其前身更快的芯片,电池续航时间也更长。三……录课用什么软件最好不用绿幕的录课方式做课录课必不可少的一环录课用什么软件最好分享一种录出高级感,却不用摄像头,不用绿幕的录课神器我是头部教育公司总监,教了900多位老师做……一代神童5岁封王8岁拜相10岁赴死遗言更是家喻户晓在中国五千年文明历史之中,先后涌现出了无数名噪一时的孩童。甘罗十二为相、曹冲六岁称象;蔡文姬六岁辩仙音、元嘉一心多用;房玄龄年幼识大局、司马光破瓮救友,如此多的典故不胜枚举。……雪后的景色最美丽开心诵读敬请聆听雪后的景色最美丽文:青竹无言诵:福开心冬天有着独特的美丽冬天的景色无与伦比雪花仙子总在人们的睡梦中悄悄来临她点缀着树枝让……西楚霸王项羽有机会逃跑为什么会选择自刎?前言:中国古代历史长河中,各朝代可谓将星闪耀、名将辈出!你一定听过力拔山兮气盖世,时利兮骓不逝。西楚霸王项羽相信大家都不陌生!项羽你不知道他的故事那你一定听说……韩信在拥兵百万时没反,为何在被贬为淮阴侯,被监视居住时却反了功臣与帝王的关系之中大部分都是帝王对不起功臣,从来都是他们为自己一个姓氏的天下将功臣屠杀的一干二净。刘邦和韩信之间的关系恩怨情仇其实就是一团理不清楚的乱麻,很多人分不清楚到底是……逃离城市去深山隐居,6年开荒12000,她独自建造了一处世外1hr一条蜿蜒的公路盘绕在群山之间,不时有车辆穿行而过。这是云南石鼓镇境内的公路,是一条热门的旅游路线,有不少人旅行时会途经这里。有一片宽阔的田地藏在公路旁的树林中……奇女子孔四贞清朝的汉族格格,还珠格格小燕子的原型《还珠格格》中的小燕子是乾隆皇帝亲认的民间格格,还是一位汉族姑娘。在清朝初期,的确有一位汉族格格孔四贞,与小燕子不同的是她出身于藩王世家,为了活命逃往京城,阴差阳错地成为了清朝……吃醋能软化血管?错!这3招才会让血管老得慢一点最近小圈收到圈友求助说常看到软化血管的小妙招到底靠谱吗比如吃醋能软化血管多喝绿茶可以软化血管这些血管小妙招真的靠谱吗来听听中国医学科学院阜外医院的……2022年河北民营百强,沧州12家上榜,光黄骅就8家河北省在全国的经济地位处在东部沿海的后端,但是民营经济发达,真正属于藏富于民,在2022中国民营企业500强排行榜中,河北省有30家民营企业上榜,在全国民营企业数量依然排名全国……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网