0 znode节点类型:

Znode有两种类型,短暂的(ephemeral)和持久的(persistent)

Znode的类型在创建时确定并且之后不能再修改

短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点

持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除

Znode有四种形式的目录节点,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL

1 java代码创建上述4中znonde节点:

//持久的(以下代码只能执行一次) 只能生成节点/pp

//zooKeeper.create("/pp", " ".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

//zooKeeper.close(); 关闭客户端后 /pp节点依旧在zk内

//持久有序的(在/pp/下面增加一个节点,可以重复执行,父节点必须以/结尾) 这样会在 /pp/0000000000 /pp/0000000001这种方式不断生成子节点

//zooKeeper.create("/pp/", " ".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);

//zooKeeper.close(); 关闭客户端后 /pp节点依旧在zk内

查看有多少子节点: zk.getChildren

//临时的(临时的下面不能有孩子)

zooKeeper.create("/ee", " ".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

//zooKeeper.close(); 关闭客户端后 /ee节点不会在zk内

//临时有序的

for(5)

//zooKeeper.create("/pp/", " ".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);

thread.sleep(1000);

}

//zooKeeper.close(); 关闭客户端后 /ee节点和其下面的节点不会在zk内

如下是创建zk各种类型节点代码:

public static void main(String[] args) throws Exception {

ZooKeeper zk = new ZooKeeper("hadoop3:2181",

9999, new Watcher() {

// 监控所有被触发的事件

public void process(WatchedEvent event) {

System.out.println("已经触发了" + event.getType() + "事件!");

}

});

// System.out.println(zk); 执行main函数时 请打开

//System.out.println(zk.getChildren("/", false));

//zk.create("/zmtest2", "15".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

/*zk.create("/zmtest3", "15".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

Thread.sleep(10000); // 10S内 创建的临时节点/zmtest3 存在 10S后消失

zk.close();*/

/*zk.create("/zmtest2", "15".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);

zk.close(); 执行两次下 会产生如下结果: 直接在根路径下加上流水号产生 [zmtest20000000008, zmtest20000000007, zookeeper] 这两个的值都是15

*/

/* 在已经创建好永久节点/zmtest2后,循环执行如下方法2次,然后 ls /zmtest2 看到如下结果[0000000000, 0000000001] 这两个节点值也都是15

* zk.create("/zmtest2/", "15".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);

zk.close(); */

//System.out.println(zk.getData("/zmtest",false,null)); // 以字节码打印

}

maven工程见附件

1.1 上面ZooDefs下模式解释:

使用api 中预设的ACL

在创建znode时可以设置该znode的ACL列表。接口org.apache.zookeeper.ZooDefs.Ids中有一些已经设置好的权限常量,例如:

(1)、 OPEN_ACL_UNSAFE :完全开放。 事实上这里是采用了world验证模式,由于每个zk连接都有world验证模式,所以znode在设置了 OPEN_ACL_UNSAFE 时,是对所有的连接开放。

(2)、 CREATOR_ALL_ACL :给创建该znode连接所有权限。 事实上这里是采用了auth验证模式,使用sessionID做验证。所以设置了 CREATOR_ALL_ACL 时,创建该znode的连接可以对该znode做任何修改。

(3)、 READ_ACL_UNSAFE :所有的客户端都可读。 事实上这里是采用了world验证模式,由于每个zk连接都有world验证模式,所以znode在设置了READ_ACL_UNSAFE时,所有的连接都可以读该znode。

2 关于zookeeper 深入学习的连接: 推酷

zk pivottable java_zookeeper节点类型和java客户端创建zk节点相关推荐

  1. MySQL数据类型和Java数据类型对应关系表

    MySql 数据类型和 Java 数据类型之间的转换是很灵活的. 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String,任何 MySql 数字类型都可以被转换为任何 ...

  2. JdbcType类型和Java类型的对应关系(java.sql.date,java.sql.time,java.sql,Timestamp)

    参考博客: java中几个时间的区别(java.sql.date,java.sql.time,java.sql.Timestamp):https://blog.csdn.net/fanfan19931 ...

  3. java本地创建zk节点

    [README] java本地连接zk cluster, refer to https://blog.csdn.net/PacosonSWJTU/article/details/111404364; ...

  4. java long 对应mybati类型_修改 mybatis-generator 中数据库类型和 Java 类型的映射关系...

    使用 mybatis-generator 发现数据库类型是 tinyint(4) , 生成 model 时字段类型是 Byte ,使用的时候有点不便 数据库的类型和 Model 中 Java 类型的关 ...

  5. linux内核创建节点,Linux内核驱动自动创建设备节点文件

    Linux下生成驱动设备节点文件的方法有3个:1.手动mknod:2.利用devfs:3.利用udev 在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上L ...

  6. js添加多个子节点_JS创建DOM节点-使用document.createElement()创建子节点或同级节点...

    在一个Web页面中,需要弹出一个提示信息显示给用户.基于这个需求,要使用document.createElement()创建一个DOM节点.创建完节点后,还要使用appendChild()或inser ...

  7. mysql 数据类型 java_[mysql]MySql数据类型和java类型对照表

    Javascript之旅--第一站:从变量说起 工作这几年,js学的不是很好,正好周末有些闲时间,索性买本,大名鼎鼎的犀牛书,好好的把js深入的看一看.买过这本 书的第一印象就是贼厚,不过后面有一半部 ...

  8. Mybatis返回类型和Java常见对象类型

    点滴记录 项目开发中经常用到的: 1.resultMap 使用这个返回需要实体类和数据库字段关系映射如下面的:BaseResultMap <?xml version="1.0" ...

  9. 数据库decimal对应java什么类型_数据库类型和java类型对应关系 | 学步园

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 VARCHAR  L+N  VARCHAR  java.lang.String 12 CHAR N CHAR java. ...

最新文章

  1. SLAM前端 ---------特征提取之ORB(ORB与SIFT与SURF)
  2. MOSFET驱动器汇总 : 单个N-CHANNEL,半桥,全桥,3项桥
  3. linux系统性能优化及瓶颈分析
  4. centos java发送邮件发不出去_传真机发不出传真怎么办 传真机发不出传真解决方法【详解】...
  5. DotNET多线程使用初探
  6. C++函数后置返回类型
  7. LVS NAT 模型配置实例
  8. Hanlp得到语义相似度的方法
  9. JSP断点续传多线程链接下载
  10. char* str = abc ;跟char str[] = abc;的区别
  11. php数组排除某个键_PHP根据key删除数组中指定的元素
  12. 学术检索产品比较分析
  13. 《LabVIEW 虚拟仪器程序设计从入门到精通(第二版)》一导读
  14. Reveal Effect(揭露效果)低版本兼容
  15. 基于PHP的超市进销存管理系统
  16. 猫眼电影诛仙评论爬取并进行数据分析
  17. Excel数据透视表经典教程二《创建数据透视表》
  18. 蘑菇街HR问我有什么缺点,我的回答是我没有缺点!
  19. guid备份分区表crc错误_硬盘GPT和MBR分区表转换方法
  20. 华为Mate7-打开开发者选项

热门文章

  1. 技术改变生活,统一通信走向深度融合
  2. 手机网站开发相关介绍
  3. java Date 转mysql timestamp 秒数不一致
  4. 去重查询表mysql 中数据
  5. 【小白问题】appendTo()
  6. dubbo ---- 入门
  7. delphi ,安装插件
  8. Oracle学习 第26天 Toad试用感受
  9. 实验一 框架的选择及其原因
  10. 长城守卫 Beijing guards CERC 2004 LA3177 解题总结