ZK数据同步

整个集群完成Learner选举后,Learner向Leader发起注册,然后进入数据同步环节,即Leader将learner上缺失的事务请求同步给Learner

1). 获取Learner状态	根据Learner发送的ACKEPOCH,leader解析出该learner的currentEpoch和lastZxid
2). leader进行自身数据同步初始化,包括peerLastZxid/minCommmittedLog/maxCommittedLog
3). 根据情况Leader发送 DIFF或TRUNC或SNAP 通知learner准备开始同步同步消息
4). Leader发送差异化数据
5). leader继续发送一个NEWLEADER指令表明数据发送完成
6). Leaner接收处理数据完成后,就发送ACK消息
7). Leader收到ACK就认为该节点已同步完成,并进入"过半策略"等待
8). leader广播一个UPTODATE消息通知 已有过半机器完成数据同步,可以对外提供服务了

posted @ 2017-09-29 16:08  Desneo  阅读(1420)  评论(0编辑  收藏  举报