Zookeeper--Watcher 和 ACL
Zookeeper--Watcher 和 ACL
Watcher (观察)
Zookeeper中的znode可以被监控,这是zk的核心特性。
通过exists,getChildren和getData这些读操作可以设置观察,通过create,delete和setData这些写操作触发观察。当一个观察被触发时会产生一个事件,这个观察和触发它的操作共同决定了观察事件的类型。
1.当所观察的znode被创建,删除或其数据被更新时,设置在exists操作上的观察被触发。
2.当所观察的znode被删除或其数据被更新时,设置在getData操作上的观察被触发。创建znode不会触发getData上的观察。
3.当所观察的znode的子节点被创建或删除,或所观察的znode被删除时,设置在getChildren上的观察会被触发。通过观察事件的类型来判断被删除的是znode还是其子节点:NodeDelete或NodeChildrenChanged。
观察和触发映射表:
创建节点 创建子节点 删除节点 删除子节点 setData
exists NodeCreated NodeDeleted NodeDataChanged
getData NodeDeleted NodeDataChanged
getChildren NodeChildrenChanged NodeDeleted NodeChildrenChanged
观察事件参数中可获取到被观察节点的路径,因此对于NodeCreated和NodeDeleted事件可获取到是哪个节点被创建和获取。
对于NodeChildrenChanged事件则需要使用getChildren方法获取新创建的节点。
对于NodeDataChanged事件则需要调用getData方法获取更新后的数据。注意:观察被触发后和获取数据之间节点可能又发生了变化。
ACL相关的操作不触发任何观察。
ACL (访问控制表)
每个znode被创建时都需要指定一个ACL列表,定义了该节点被执行各种操作的权限。
ACL依赖于Zookeeper的客户端身份验证机制。zk提供了以下几种验证方式:
Digest 通过用户名和密码来识别客户端
sasl 通过Kerberos来识别客户端
IP 通过客户端IP地址来识别客户端
每个ACL都是验证方式和赋予权限的组合,如 new ACL(Perms.READ, new ID("ip", "10.11.19.18")); 使用IP验证方式赋予READ权限
注意exists操作不需要任何权限,因此任何客户端都可以调用。
ACL权限表:
CREATE 允许create
READ 允许getChildren getData
WRITE 允许setData
DELETE 允许delete
ADMIN 允许setACL
在ZookDefs.Ids中定义了一些ACL,如OPEN_ACL_UNSAFE,将除ADMIN外的其他权限赋予每个客户端。
end
Zookeeper--Watcher 和 ACL的更多相关文章
- java zookeeper权限控制ACL(digest,IP)
java zookeeper权限控制ACL(auth,digest,ip) 学习前请参考:https://www.cnblogs.com/zwcry/p/10407806.html zookeeper ...
- 8.7.ZooKeeper Watcher监听
1.ZooKeeper Watcher ZooKeeper 提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象, 当这个主题对 ...
- ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机制来解决访问权限问题,详见官网文档:ht ...
- zookeeper Watcher API 说明
Watcher 在 ZooKeeper 是一个核心功能,Watcher 可以监控目录节点的数据变化以及子目录的变化,一旦这些状态发生变化,服务器就会通知所有设置在这个目录节点上的 Watcher,从而 ...
- Zookeeper——Watcher原理详解
文章目录 引言 正文 一.如何注册监听 二.如何触发监听事件 三.事件类型有哪些 四.Watcher可以被无限次触发么?为什么要这么设计? 五.Watcher实现原理 1. 客服端发送请求 a. 初始 ...
- [转载] Zookeeper中的 ACL(Access Control List)访问控制列表
zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机制来解决访问权限问题,详见官网文档:ht ...
- Zookeeper Watcher 解析
1.Watcher 接口源码 1. 当客户端向zookeeper注册了watcher时,当服务器向客户端发送一个watcher事件通知时,客户端会调用回调方法process(WatchedEvent ...
- zookeeper watcher
ZooKeeper 的 watcher 机制主要包括客户端线程.客户端 WatchManager 和 ZooKeeper 服务器三部分. 工作方式:客户端在向 zk 服务器注册 Watcher 的同 ...
- ZooKeeper Watcher注意事项
zookeeper watch的定义如下:watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher. 需要注意三点: 1.一次性触发器 c ...
- Zookeeper Watcher接口
在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了 ...
随机推荐
- java程序设计基础篇 复习笔记 第六单元
第六章 一维数组 1 数组初始化语法 array initializer 2 for each loop 3 off-by-one error 通常是在循环中该使用<的地方使用了<= 4 ...
- 【zznu-2173】
题目链接 题目描述 春天自幼学习人间大道,斩断情缘,现已修成正果,势必要斩尽巨魔.某朝末年,战乱四起,民不聊生,魔界与人间界的封印减弱,n只巨魔趁机降临人间,祸乱百姓.n只巨魔只知扰乱人间,会有天谴降 ...
- rsync的服务启动脚本
#!/bin/bash #author:Mr.chen # chkconfig: # description:This is Rsync service management shell script ...
- hdu 1817 Necklace of Beads(Polya定理)
Necklace of Beads Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 前台cookie的操作
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- bootstrap 获得轮播中的索引 getActiveIndex
今天想用bootstrap做一个轮播,当轮播滚到每张图的时候,在页面下面就显示相对应的内容,那么问题来了:我肯定需要知道当前活动(显示图片)的索引号,那么bootstrap的轮播组件要怎么获得这个索引 ...
- Java发送短信
1.接口使用介绍 发送短信肯定需要使用第三方接口,Java本身是肯定不能直接发送短信的.第三方接口有很多,这里直接找个正规靠谱一点的学习一下 这里使用了中国网建(http://sms.webchine ...
- JSP的EL和JSTL解析
1. EL 简介EL 全名为Expression Language,所有EL都是以${ 为起始.以} 为结尾的.EL 语法很简单,它最大的特点就是使用上很方便. 接下来介绍EL 主要的语法结构: ${ ...
- SQL Server 2008 R2 使用 PIVOT 错误
SQL Server 2008 R2 使用 PIVOT 错误! 'PIVOT' 附近有语法错误.您可能需要将当前数据库的兼容级别设置为更高的值,以启用此功能. 有关 ALTER DATABASE 的 ...
- Vue设置全局的方法和样式
vue中我么会经常用到通用的一些全局的方法,如何左才能实现全局的复用减少代码累赘呢? 我们一般将公用的方法分装再utils.js文件中,然后再main.js主入口文件中将utils.js中的公共的方法 ...