2.ZooKeeper数据同步

同步过程

leader接收到的来自某个follower封包一定是FOLLOWERINFO,该封包告知了该服务器保存的数据id.之后根据这个数据id与本机保存的数据进行比较:

  1. 如果数据完全一致,则发送DIFF封包告知follower当前数据就是最新的了.
  2. 判断这一阶段之内有没有已经被提交的提议值,如果有,那么:
    1. 如果有部分数据没有同步,那么会发送DIFF封包将有差异的数据同步过去.同时将follower没有的数据逐个发送COMMIT封包给follower要求记录下来.
    2. 如果follower数据id更大,那么会发送TRUNC封包告知截除多余数据.
  3. 如果这一阶段内没有提交的提议值,直接发送SNAP封包将快照同步发送给follower.
    以上消息完毕之后,发送UPTODATE封包告知follower当前数据就是最新的了,再次发送NEWLEADER封包宣称自己是leader,等待follower的响应.

你可能感兴趣的:(2.ZooKeeper数据同步)