2020-05-02 zookeeper知识梳理(暂时不看)

参考大佬面经:https://www.jianshu.com/p/a61f012e84d5

zk的用途:https://www.cnblogs.com/SimonHu1993/p/7798665.html

  • 数据发布与订阅(比如配置中心qconfig)
  • 分布式锁
  • 负载均衡
  • 命名服务(Naming Service)
  • 分布式通知/协调
  • 集群管理与Master选举
  • 分布式队列

 

1. CAP定理

C:一致性(读操作总能读到以前的写操作)
A:可用性(在单台机器出错时,仍然能正常工作,不用迁移到其他机器)
P:分区容错性 (异常情况下仍然能满足CA)
该理论指出一个分布式系统不可能同时满足CAP,ZooKeeper保证了CP,A的话在Leader选举时会丢失部分请求

2. ZAB协议

分为消息广播(半数follower收到请求即commit)和崩溃恢复(leader崩溃后选举leader的过程)

3. Leader选举算法和流程

每个ZooKeeper都有两个Id,一个是代表自己的Pid,一个是代表本身所存储的数据的Zid,
一开始还没有leader也没有数据的时候会选举最大的Pid当leader
当运行突然崩溃时,先每个都选举自己,广播自己的Pid和Zid,然后收到的机器广播最大的那个Zid对应的Pid,当半数+1ZooKeeper同意的时候即成为Leader

 

4. 选举方式


5. 主从同步方式


6. zk分布式锁和redis分布式锁的不同


7. zk注册发现实现


8. paxos

 

你可能感兴趣的:(zookeeper)