up:: 高级命令

Watcher可以理解为:

watcher触发条件

ZooKeeper Watcher(监听机制)

ZooKeeper提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理

ZooKeeper中,引入了Watcher机制来实现这种分布式的通知功能。ZooKeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能

触发事件种类很多,如:节点创建,节点删除,节点改变,子节点改变等。

总的来说可以概括Watcher为以下三个过程:客户端向服务端注册Watcher服务端事件发生触发Watcher客户端回调Watcher得到触发事件情况

监听机制的特点

一次性: 无论是客户端还是服务端,只要一个Watcher被触发,其Map存储都会被移除,因此开发者需要反复注册。 客户端串行执行: 客户端对于Watcher的回调是一个串行的过程,保证了顺序性。 轻量: WatchedEvent是Zookeeper的通知的最小单元,这个数据结构中只包含三部分内容:通知状态、事件类型和节点路径。它不会携带时间的节点具体数据内容,而是需要客户端主动去重新获取。

ACL

ACL (Access Control List),Zookeeper作为一个分布式协调框架,其内部存储的都是一些关于分布式系统运行时状态的元数据,默认情况下,所有应用都可以读写任何节点,在现如今复杂的网络应用中,这很明显不太安全,任何应用都会有一些用户权限,来保证系统的安全访问,所以,Zookeeper也通过ACL访问控制机制,来解决访问权限问题

◆Access Control List权限控制列表,有5种控制权限


Zookeeper节点权限模式,即是Scheme。

开发中,最多使用的有以下四种节点权限模式:

ip: ip模式通过ip地址粒度进行权限控制模式,例如配置了:192.168.1.101,即表示权限控制都是针对这个ip地址的(实际开发中用的比较少)

digest:digest是最常用的权限控制模式,也是开发中用的最多的一种Scheme方式。 该方式采用username:password形式的权限标识进行权限配置,ZK会对形成的权限标识先后进行两次加密处理,分别是SHA-1加密算法和Base64编码

world: world是一种最开放的权限控制模式,也是默认的权限模式,这种模式可以看做特殊的digest,它仅仅是一个标识而已,有个唯一的id。 anyone表示所有人。

auth: 不使用任何id,代表任何已认证的用户


Zookeeper节点操作权限:

权限,就是指那些通过权限校验后才可以被允许执行的操作,在ZK中,对数据的操作权限分为以下五大类:create,delete,read,write和admin

也就是 增、删、改、查、管理权限,这5种权限简写就是cdrwa(每个单词的首字符缩写)

各权限含义说明:

create: 创建子节点的权限

delete: 删除节点的权限

read: 读取节点数据的权限

write: 修改节点数据的权限

admin: 设置子节点权限的权限

参考:

ZooKeeper ACL权限控制_赶路人儿的博客-CSDN博客_zookeeper 鉴权

只是入门,等待后续补充。。。。