集群角色
ZooKeeper中包含Leader、Follower和Observer三个角色
Leader:负责进行投票的发起和决议,更新系统状态
Follower:用于接受客户端请求并向客户端返回结果,在选主过程中参与投票
Observer:可以接受客户端请求,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度。
会话
服务器与客户端之间的长连接,客户端通过心跳检测与服务器端保持会话,在生命周期之间能发起请求、接收响应、接收watch时间通知。可设置sessionTimeout,客户端意外断开连接后,若能在超时时间重连,则之前的会话有效。
数据节点
这里指zookeeper内部的数据结构Znode,而非集群中的哪一台zk服务器。
znode分为持久节点和临时节点
持久节点:创建后除了主动删除,否则一直存在zk中
临时节点:一旦客户端会话失效,客户端创建的临时节点被移除。
Watcher(事件监听器)
zk允许用户在指定节点上注册感兴趣的事件,事件触发时,会将事件通知发送给客户端。
ACL
zk采用ACL进行权限控制
CREATE:创建子节点的权限
DELETE:删除子节点权限
READ:获取节点数据和子节点列表权限
WRITE:更新节点数据权限
ADMIN:设置节点ACL的权限
参考:
《从PAXOS到ZOOKEEPER分布式一致性原理与实践》
https://blog.csdn.net/qq_24908345/article/details/52786087