Zookeeper客户端API之节点检查和权限控制(十一)

本篇博客介绍一下原生API的节点检查是否存在和节点操作权限控制。Zookeeper提供的方法的使用方式与前面增删改查操作类似,具体使用案例不再逐一用实例说明。

节点检查是否存在

原生API的提供4个相应的方法,通过这些方法,可以检查节点是否存在,返回节点Stat信息,对节点进行注册监听事件等操作。

方法

public Stat exists(final String path, Watcher watcher)
public Stat exists(String path, boolean watch)
public void exists(final String path, Watcher watcher,
            StatCallback cb, Object ctx)
public void exists(String path, boolean watch, StatCallback cb, Object ctx)

参数说明

参数

说明

path

操作节点路径

watcher

注册Watcher,用于监听节点创建、节点删除、节点更新事件。

watch

是否使用默认watcher

cb

注册一个回调函数

ctx

传递上下文信息

其他说明

1、无论节点是否存在使用exists方法都可以进行监听注册。节点不存在时注册监听之后,当节点被创建则会通知客户端。 2、指定节点的子节点的变化不会通知客户端。

权限控制

在以前的实例中我们通过API创建的节点都是默认创建后可以随意操作。但在实际生产过程中,往往是多个应用使用同一套Zookeeper服务。而且,不同应用系统很少使用共同的数据,这时就需要通过权限来控制不同服务直接访问操作节点的权限。

Zookeeper提供了多种权限控制模式:world、auth、digest、ip和super。

创建完成会话之后,调用Zookeeper提供的addAuthInfo方法给会话操作添加权限,后续的其他操作都会添加此权限信息。此会话创建的节点,其他无权限的会话将无法操作,以此达到权限控制的目的。

特殊操作

其他操作都遵循上面所说的权限规则,唯独删除权限有所区别。 删除权限的作用范围为节点的子节点,即当对一个节点赋予权限之后,依然可以自由的删除此节点,但是此节点下面的子节点需要对应的权限才能够删除。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习123

Linux查看服务的运行状态,并且启动和停止服务的方法

1.9K6
来自专栏电光石火

CentOS 安装 Maven

 1、官网找到最新版的安装包: http://maven.apache.org/download.cgi 拷贝文件名为 *-bin.tar.gz 的链接地址 ...

2376
来自专栏pangguoming

nginx 域名绑定 域名, nginx 域名绑定 端口

一、nginx 域名绑定 域名 nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文...

2.1K4
来自专栏西安-晁州

使用connect-multiparty限制nodejs图片上传

connect-multiparty中间件,可用于获取文件上传时各种参数,比如文件大小、格式等,具体使用: var multipart = require('c...

2420
来自专栏Golang语言社区

Golang语言--反射的用处--代码自动生成

背景: go语言处理db、json的时候,具体代码的变量定义和db字段、json输出的时候可能不一样。 这个时候,我们需要用tag的方式来进行定义。 例如: ?...

4276
来自专栏安恒信息

安恒信息预警公告: Tomcat 全系报请求漏洞

据安恒信息获悉,Tomcat 6.x、7.x、8.x三个分支均发现请求漏洞,漏洞危害级别为高危,且影响范围大,建议用户尽快修复。 CVE-2014-0227 ...

35710
来自专栏深度学习之tensorflow实战篇

Hadoop查看所有JOB以及如何Kill指定用户的所有Job

如何kill掉制定用户的所有job,有没有现成的命令?我看了一下hadoop job命令的提示,没有这样的命令。 其实实现kill指定用户的job也非常简单,本...

3166
来自专栏游戏杂谈

socket.io在IE8下的一个bug

它判断浏览器是否支持XDomainRequest,而并未在后台返回的头加上"Access-Control-Allow-Origin","*"。详见这里>>

1873
来自专栏xingoo, 一个梦想做发明家的程序员

Kibana中doc与search策略的区别

在kibana中包含两种策略:doc和search。使用了两个循环队列来获取请求,并进行响应。 doc的代码如下: clientMethod: 'mget' ...

23810
来自专栏BeJavaGod

权限框架 - shiro 自定义realm

上篇文章中是使用的默认realm来实现的简单登录,这仅仅只是个demo,真正项目中使用肯定是需要连接数据库的 首先创建自定义realm文件,如下: ? 在shi...

3375

扫码关注云+社区

领取腾讯云代金券