zookeeper作用:提供集群模式服务:
原子性:准确的反馈操作成功或失败。
可用性:实现集群高可用
一致性:每个server都有统一的数据视图,实现过半机制,防止脑裂。
顺序性:主从模型 一写多读(一个leader,多个follwer)
zookeeper集群状态:
(1)选举模式:
zookeeper集群启动后要先选举出leader才能对外提供服务。客户端写的操作都由leader完成(更新系统状态)
(2)广播模式:
zookeeper集群对外提供服务。
两阶段提交操作:第一阶段:leader发送消息队列给follower,,follower将投票信息回给leader,只要有超过半数的Server同意这个增删改操作就说明这个操作可以实行了(是否同意是由这个server记录的zxid事务id和提交的增删改操作事务的id进行比较)。第二阶段是leader将投票结果发送给各个follower实现数据的同步。
zookeeper角色模型:
leader:负责投票的发起和决议,更新系统状态
follwer:接受客户端请求并向客户端返回结果
observer:可接受客户端请求并将请求发送给leader,不参与投票过程,只同步集群leader状态。