zookeeper 是如何保证事务的顺序一致性的?
zookeeper 采用了全局递增的事务 Id 来标识,
所有的 proposal(提议)都在被提出的时候加上了
zxid,zxid 实际上是一个 64 位的数字
高 32 位是 epoch( 时期; 纪元; 世; 新时代)
用来标识 leader周期,如果有新的 leader 产生出来,epoch会自增,
低 32 位用来递增计数。当新产生 proposal 的时候,
会依据数据库的两阶段过程,首先会向其他的 server 发出事务执行请求,
如果超过半数的机器都
能执行并且能够成功,那么就会开始执行。