Zookeeper实例原生API--删除节点接口权限


import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
/**
 * 
* @ClassName: AuthSample_Delete 
* @Description: TODO(删除节点的权限控制) 
* @author RongShu
* @date 2017年6月11日 下午8:41:23 
*
 */
public class AuthSample_Delete {
    final static String PATH  = "/zk-book-auth_test";
    final static String PATH2 = "/zk-book-auth_test/child";
    public static void main(String[] args) throws Exception {
        ZooKeeper zookeeper1 = new ZooKeeper("localhost:2181",5000,null);
        zookeeper1.addAuthInfo("digest", "foo:true".getBytes());
        zookeeper1.create( PATH, "init".getBytes(), Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT );
        zookeeper1.create( PATH2, "init".getBytes(), Ids.CREATOR_ALL_ACL, CreateMode.EPHEMERAL );
        try {
			ZooKeeper zookeeper2 = new ZooKeeper("localhost:2181",50000,null);
			zookeeper2.delete( PATH2, -1 );
		} catch ( Exception e ) {
			System.out.println( "删除节点失败: " + e.getMessage() );
		}
        ZooKeeper zookeeper3 = new ZooKeeper("localhost:2181",50000,null);
        zookeeper3.addAuthInfo("digest", "foo:true".getBytes());
		zookeeper3.delete( PATH2, -1 );
        System.out.println( "成功删除节点:" + PATH2 );
        ZooKeeper zookeeper4 = new ZooKeeper("localhost:2181",50000,null);
		zookeeper4.delete( PATH, -1 );
        System.out.println( "成功删除节点:" + PATH );
    }
}

输出
删除节点失败: KeeperErrorCode = NoAuth for /zk-book-auth_test/child
成功删除节点:/zk-book-auth_test/child
成功删除节点:/zk-book-auth_test


注意:

当客户端对一个数据节点添加了权限信息后,对于删除操作而言,其作用范围是其子节点,也就是说,当我们对一个数据节点添加权限信息之后,依然可以自由的删除这个节点,但是对于这个节点的子节点,就必须使用相应的权限信息才能够删掉它。


参考

1.《从Paxos到Zookeeper:分布式一致性原理与实践》

2. https://zookeeper.apache.org/doc/r3.5.3-beta/api/index.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值