Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。原理上实现Paxos修改算法Zab来保证一致性。即同一时刻只有一个leader可以发起propose,避免多个proposer争夺acceptor发生活锁。
①EPOCH大的直接胜出
②EPOCH相同,事务id大的胜出
③事务id相同,服务器id大的胜出
使用
1.在多台机器启动server服务
2.在任意节点启动客户端
3.在客户端对zookeeper进行增删订阅操作,zookeeper会自动维护响应功能
zookeeper文件结构为树形结构类似文件系统。每个节点可存1MB数据。通过路径唯一标识
Zab
主要解决leader发起proposal后宕机和leader收到半数ACK,还未commit就宕机两个问题。
源码等有时间看尚硅谷吧
08_尚硅谷技术之ZookeeperV3.3