1、Zookeeper数据类型:层次化目录结构+少量数据
Zookeeper包含层次化的目录结构,每个Znode都有唯一的路径标识,Znode可以包含数据和子节点。
其中Znode数据可以有多个版本,若该路径下包含多个数据版本,查询这个路径下的数据时,需要带上版本。
2、Zookeeper节点类型:临时节点(ephemeral)、持久节点(persistent)、顺序节点(sequence)。节点类型在创建时确定,之后不可修改。
(1)临时节点在客户端会话结束后,zookeeper会将该临时节点删除,且临时节点不可有子节点。
(2)持久节点不依赖于客户端的会话,只有客户端明确要删除该持久节点,才会将其删除。
也可以说是四种:
(1)PERSISTENT-持久节点除非手动删除,否则节点一直存在于 Zookeeper 上
(2)EPHEMERAL-临时节点临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与zookeeper 连接断开不一定会话失效),那么这个客户端创建的所有临时节点都会被移除。
(3)PERSISTENT_SEQUENTIAL-持久顺序节点基本特性同持久节点,只是增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。
(4)EPHEMERAL_SEQUENTIAL-临时顺序节点基本特性同临时节点,增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。
3、Zookeeper角色:leader领导者、follower跟随者、observer观察者、client客户端
(1)leader:负责投票的发起和决议,更新系统状态,处理事务请求。
(2)follower跟随者:参与投票,接收客户端请求,处理非事务请求并返回结果,转发事务请求给leader。
(3)observer观察者:不参与投票过程,只同步leader状态,为了扩展系统,提高读写速度。也接收客户端请求,处理非事务请求并返回结果,转发事务请求给leader。
(4)client客户端:请求发起方。
4、Watcher监听机制:
(1)监控目录节点数据变化
(2)监控子目录变化
(3)一旦这些节点发生变化,服务器就会通知所有设置在这个目录节点上的Watcher,使得每个客户端都很快知道其关注的目录节点的状态发生变化,从而做出相应反应。
节点类型和Watcher监听机制,是解决所有应用场景问题的出发点和落脚点。