高可用一致性协调框架的老大哥,“动物界的管理员”**
一. zookeeper的CAP定理
C:Consistency一致性,数据一致更新,所有数据变动都是同步的
A:Availability,可用性,是指系统在对外提供服务的时候,必须一直处于可用状态,对于每一个操作请求总是能够在有限的时间内返回结果
P:Partition tolerance:分区容错性.如果在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障
者三个基本需求,最多只能同时满足其中的两种,因为容错性是必须的,所有往往选择就在CP和AP中
二. zookeeper的广播模式和恢复模式
恢复模式:当服务启动或者在领导者leader奔溃后,Zab就进入了恢复模式,当领导者重新被选举出来后,且大多数server完成了和leader的状态同步以后,恢复模式就结束了.
广播模式:两阶段提交,假如客户端给了Follower一个增删改的请求,那么Follower会把这个请求转发给Leader.当Leader接收后会发起一个请求,广播给每一个Follower, 所有的Follower中,只Leader收到了一半的投票,那么Leader就会同意并返回一个同意的命令commit提交,这是所有服务器的数据都会提交.最后Follwer给客户端一个响应response执行完毕.
三. zookeeper选主的流程
选举过程一般情况下在200毫秒之内,恢复时间不超过200ms.
(1) 每个Server发出一个投票。初始情况Server1和Server2都会将自己作为Leader服务器来进行投票,每次投票会包含所推举的服务器的myid和ZXID,使用(myid, ZXID)来表示,此时Server1的投票为(1, 0),Server2的投票为(2, 0),然后各自将这