zookeeper节点之 java操作 和zookeeper-权限(ACL)

先贴上代码

public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
// 虚拟机的ip地址 ,本地可以配置成localhost String path
="192.168.44.5:2181"; // 启动java客户端 final CountDownLatch countDownLatch = new CountDownLatch(1);
// 5000 是连接时长 ZooKeeper keeper
= new ZooKeeper(path, 5000, new Watcher() { @Override public void process(WatchedEvent event) { Event.KeeperState state = event.getState(); System.out.println(state.toString()); //加这句代码是因为zookeeper 采取的是线程start方式来启动,异步请求会造成还没连接成功就返回失败的请求 countDownLatch.countDown(); } }); // byte[] data = "localhots:8099".getBytes(); // 创建 PERSISTENT_SEQUENTIAL 持久化节点- 顺序 ,临时节点(EPHEMERAL),顺序节点(SEQUENTIAL) // zooKeeper.create("/alomsc",data, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL); // System.out.println("success"); countDownLatch.await(); System.out.println("连接success"); // 获取版本号 // Stat stat = zooKeeper.exists("/alex",true); // 修改 // Stat stat1 = zooKeeper.setData("/alex", data, stat.getVersion()); // System.out.println("版本号:"+stat.getVersion()); // System.out.println("版本号2:"+stat1.getVersion()); // 删除 // zooKeeper.delete("/almosc000000004",0); }

二、zookeeper-权限(ACL)

CL 权限控制,使用:scheme:id:perm 来标识,主要涵盖 3 个方面:
  权限模式(Scheme):授权的策略(客户端有很多类型(1、ip,2、用户名:密码,3、world:anyone))
  授权对象(ID):授权的对象(就是客户端)
  权限(Permission):授予的权限(crwda)

其特性如下:
  ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限
  每个znode支持设置多种权限控制方案和多个权限
  子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点

猜你喜欢

转载自www.cnblogs.com/alomsc/p/12788284.html