针对统一个Follower A提交的写请求request1、request2,某些Follower虽然可能不克不及正在请求提交成功后当即看到(也就是强分歧性),www.60929.com!但颠末本身取Leader之间的同步后,这些Follower正在看到这两个请求时,必然是先看到request1,然后再看到request2,两个请求之间不会乱序,即挨次分歧性

  Leader正在处置第4步Follower的ack答复时,采用过对折响应即成功准绳,也就是这时候有的Follower是还没有处置或者处置成功这个请求的

  Zookeeper常被用于分布式协调办事(即办事或元数据注册等场景,如Dubbo、Kafka:将出产者或元数据消息注册到Zookeeper集群上,以便分布式系统其他参取者及时看到,由于Zookeeper实现了雷同Paxos的Zab和谈,处理了分布式数据分歧性问题)、分布式锁等用处

  假设有一个Zookeeper集群(N=3,N为奇数),那么只要一个Leader(通过FastLeaderElection选从策略拔取),所有的写操做(客户端请求Leader或Follower的写操做)都由Leader同一处置,Follower虽然对外供给读写,但写操做会提交到Leader,由Leader和Follower配合统一个Follower请求的挨次性,Leader会为每个请成一个zxid(高32位是epoch,用来标识leader选举周期,每次一个leader被选出来,城市有一个新的epoch,标识当前属于哪个leader的期间,低32位用于递增计数)

  前几天看了一个帖子,讲Zookeeper的挨次分歧性,比划了一通数学注释,看的云山雾罩的,正在此讲下本人对于挨次分歧性的理解

  总之:Follower通过队列和zxid等挨次标识请求的挨次处置,一言不合就会从头同步Leader