Zookeeper:分布式协调服务器
特性:原子性(操作都是原子的要么成功要么失败)
顺序一致性:发起的客户端请求都会按照顺序记录到zk中
单一视图:即所有的server看到的数据都是一致的,因为其他server之间会作同步数据的操作
最终一致性:客户端最终读到的数据一定是最新的。可能中间出现及其段的时间处理server间同步的操作
如果 zk的选举 最长默认200ms
zk属于CAP定理中的CP 即保证一致性和分区容错性
Paxos算法:ZAB协议是paxos算法的一种工业实现
paxos更强调的是集群服务数据的最终一致性
三种角色
proposer:提案者
acceptor: 表决者
learner: 同步者(对应leader选举的就是 follower 和 observer)
paxos的两个阶段
prepare阶段
accept阶段
leader选举:
三种角色:leader:处理事务的读写请求及同步其他server
follower:处理事务的读请求。写请求交给leader去处理。在leader宕机后。具有选举权和被选举权
observer:观察着 外包性质没有选举权及被选举权