1.概述
2. zk 是如何保证事物的顺序一致性
zookeeper 采用了递增的事务 Id 来标识,所有的 proposal(提议)都在被提出的时候加上了 zxid,zxid 实际上是一个 64 位的数字,高 32 位是 epoch(时期; 纪元; 世; 新时代)用来标识 leader 是否发生改变,如果有新的 leader产生出来,epoch 会自增,低 32 位用来递增计数。
当新产生 proposal 的时候,会依据数据库的两阶段过程,首先会向其他的 server 发出事务执行请求,如果超过半数的机器都能执行并且能够成功,那么就会开始执行。
3.zk 集群下 server 工作状态
每个 Server 在工作过程中有四种状态:
LOOKING:当前 Server 不知道 lead