Zookeeper 作用
master节点选举,主节点挂了从节点上位(首脑模式)。
统一配置文件管理。一台服务器把相同的配置文件同步更新到其他所有的服务器。
发布与订阅。发布者发布数据到znode,订阅者读取。
分布式锁。
保证数据的强一致性。
软负载均衡。
Zookeeper 基本数据模型
是一个树形结构,可以理解为linux下的目录结构。
每一个节点称之为znode,默认1MB。
节点分为临时节点和永久节点,临时节点在客户端断开后消失。
每个zk节点都有各自的版本号。
每当节点数据发生变化,该节点版本号就会累加(乐观锁)。
删除/修改过时节点,版本号不匹配则会报错。
节点可以设置权限acl。
Zookeeper session原理
客户端与服务端之间的连接存在会话
每个会话存在一个超时时间
心跳机制,客户端向服务端的ping包请求
心跳结束,session则过期
session过期,临时节点znode被抛弃
Zookeeper watcher机制
针对每个节点的操作都有一个watcher。
znode发生了变化,则触发watcher事件。
watcher是一次性的,触发立即销毁。
父节点,子节点,增删改都能触发其watcher。
不同操作(增删改)触发事件也不同。
网友评论