一、Zookeeper的数据模型
1、层次化的目录结构,命名符合常规文件系统规范
2、每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识
3、节点Znode可以包含数据和子节点,但是EPHEMERAL类型的节点不能有子节点
4、Znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本
5、客户端应用可以在节点上设置监视器
6、节点不支持部分读写,而是一次性完整读写
二、Zookeeper的节点
1、Znode有两种类型,短暂的(ephemeral)和持久的(persistent)
2、Znode的类型在创建时确定并且之后不能再修改
3、短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点
4、持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除
5、Znode有四种形式的目录节点,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL
三、Zookeeper的角色
1、领导者(leader),负责进行投票的发起和决议,更新系统状态
2、学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票
3、Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度
4、客户端(client),请求发起方