Zookeeper技能:漫衍式架构详解、漫衍式技能详解、漫衍式事宜
示例2:交错场景 脚色: proposer:照料1,照料2 acceptor:将军1,将军2,将军3(决定者) 1)照料1提倡发起,派通讯兵带信给3个将军,内容为(编号1); 2)3个将军的环境如下 a)将军1和将军2收到照料1的发起,将军1和将军2把(编号1)记录下来,假若有其他照料提出更小的编号,将被拒绝;同时让通讯兵带信归去,内容为(ok); b)认真关照将军3的通讯兵被抓,因此将军3充公到照料1的发起; 3)照料2在统一时刻也提倡了发起,派通讯兵带信给3个将军,内容为(编号2); 4)3个将军的环境如下 a)将军2和将军3收到照料2的发起,将军2和将军3把(编号2)记录下来,假若有其他照料提出更小的编号,将被拒绝;同时让通讯兵带信归去,内容为(ok); b)认真关照将军1的通讯兵被抓,因此将军1充公到照料2的发起; 5)照料1收到至少2个将军的回覆,再次派通讯兵带信给有复原的2个将军,内容为(编号1,袭击时刻1); 6)2个将军的环境如下 a)将军1收到了(编号1,袭击时刻1),和本身生涯的编号沟通,因此把(编号1,袭击时刻1)生涯下来;同时让通讯兵带信归去,内容为(Accepted); b)将军2收到了(编号1,袭击时刻1),因为(编号1)小于已经生涯的(编号2),因此让通讯兵带信归去,内容为(Rejected,编号2); 7)照料2收到至少2个将军的回覆,再次派通讯兵带信给有复原的2个将军,内容为(编号2,袭击时刻2); 8)将军2和将军3收到了(编号2,袭击时刻2),和本身生涯的编号沟通,因此把(编号2,袭击时刻2)生涯下来,同时让通讯兵带信归去,内容为(Accepted); 9)照料2收到至少2个将军的(Accepted)内容,确认袭击时刻已经被大都派接管; 10)照料1只收到了1个将军的(Accepted)内容,同时收到一个(Rejected,编号2);照料1从头提倡发起,派通讯兵带信给3个将军,内容为(编号3); 11)3个将军的环境如下 a)将军1收到照料1的发起,因为(编号3)大于之前世存的(编号1),因此把(编号3)生涯下来;因为将军1已经接管照料1前一次的发起,因此让通讯兵带信归去,内容为(编号1,袭击时刻1); b)将军2收到照料1的发起,因为(编号3)大于之前世存的(编号2),因此把(编号3)生涯下来;因为将军2已经接管照料2的发起,因此让通讯兵带信归去,内容为(编号2,袭击时刻2); c)认真关照将军3的通讯兵被抓,因此将军3充公到照料1的发起; 12)照料1收到了至少2个将军的回覆,较量两个回覆的编号巨细,选择大编号对应的袭击时刻作为最新的发起;照料1再次派通讯兵带信给有复原的2个将军,内容为(编号3,袭击时刻2); 13)将军1和将军2收到了(编号3,袭击时刻2),和本身生涯的编号沟通,因今生涯(编号3,袭击时刻2),同时让通讯兵带信归去,内容为(Accepted); 14)照料1收到了至少2个将军的(accepted)内容,确认袭击时刻已经被大都派接管。 四. Zookeeper ZAB协议 Zookeeper Automic Broadcast(ZAB),即Zookeeper原子性广播,是Paxos经典实现 术语: quorum:集群过半数的荟萃 1. ZAB(zookeeper)中节点分四种状态 looking:推举Leader的状态(瓦解规复状态下) following:跟从者(follower)的状态,听从Leader呼吁 leading:当前节点是Leader,认真和谐事变。 observing:observer(调查者),不参加推举,只读节点。 2. ZAB中的两个模式(ZK是怎样举办推举的) 瓦解规复、动静广播 1)瓦解规复 leader挂了,必要推举新的leader a.每个server都有一张选票,如(3,9),选票投本身。 b.每个server投完本死后,再别离投给其他还可用的处事器。如把Server3的(3,9)别离投给Server4和Server5,一次类推 c.较量投票,较量逻辑:颖呷较量Zxid,Zxid沟通时才较量myid。较量Zxid时,大的做leader;较量myid时,小的做leader d.改变处事器状态(瓦解规复->数据同步,可能瓦解规复->动静广播) 相干观念增补声名: epoch周期值 acceptedEpoch(比喻:年号):follower已经接管leader变动年号的(newepoch)发起。 currentEpoch(比喻:当前的年号):当前的年号 lastZxid:history中最近吸取到的发起zxid(最大的值) history:当前节点接管到事宜发起的log Zxid数据布局声名: cZxid = 0x10000001b 64位的数据布局 高32位:10000 Leader的周期编号+myid的组合 低32位:001b 事宜的自增序列(单调递增的序列)只要客户端有哀求,就+1 当发生新Leader的时辰,就从这个Leader处事器上取出当地log中最大事宜Zxid,从内里读出epoch+1,作为一个新epoch,并将低32位置0(担保id绝对自增) (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |