java 学习笔记(四) java连接ZooKeeper
public class Demo2 { public static void main(String[] args) {
String connectString = "192.168.168.133:2181";
int sessionTimeout = 500000; // 会话时间。设置长一点,如果不够长,则会connect loss
try {
// 建立zookeeper链接
ZooKeeper zk = new ZooKeeper(connectString, sessionTimeout, new Watcher(){
public void process(WatchedEvent event) {
// 监控所有触发的事件
System.out.println("start do something");
EventType type = event.getType(); // 事件类型。枚举
KeeperState state = event.getState(); // 状态。 枚举
// type.getIntValue();
switch (type) {
case None: // int值对应 -1
System.out.println("none 事件触发");
break;
case NodeCreated: // int值对应 1
System.out.println("创建节点事件发生了");
break;
case NodeDeleted: // int值对应 2
System.out.println("删除节点事件发生了");
break;
case NodeDataChanged: // int值对应 3
System.out.println("节点数据改变事件发生了");
break;
case NodeChildrenChanged: // int值对应 4
System.out.println("子节点改变事件发生了");
break;
default:
System.out.println("I do not know what operate you do");
break;
}
// state.getIntValue(); NoSyncConnected 1和Unknown-1
switch (state) {
case Disconnected: //
System.out.println("失去连接");
break;
case SyncConnected: //
System.out.println("异步链接");
break;
case Expired: // -112
System.out.println("超时过期");
break;
default:
break;
} System.out.println("end");
}
});
System.out.println("zk创建成功");
List<String> list = zk.getChildren("/", true); // 获取所有节点
if(list != null) {
for(String s : list)
System.out.println(s);
}
// 在/app5节点下创建child节点
zk.create("/app7", "/app8的子节点数据".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // 会对数据持久化,服务下次启动任然存在
zk.create("/app8", "/app8的子节点数据".getBytes(), Ids.OPEN_ACL_UNSAFE,
CreateMode.PERSISTENT, new StringCallback(){
public void processResult(int rc, String path, Object ctx, String name) {
System.out.println("rc: " + rc);
System.out.println("path: " + path);
System.out.println("Object:" + ctx);
System.out.println("name: " + name);
}
}, "ctx object"); } catch (IOException e) {
e.printStackTrace();
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
zk每一次操纵都会被监控watcher记录下来
出现这种报错是由于创建节点的时候没有创建父节点 /app1
java 学习笔记(四) java连接ZooKeeper的更多相关文章
- Java学习笔记四:Java的八种基本数据类型
Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...
- Java 学习笔记 (四) Java 语句优化
这个问题是从headfirst java看到的. 需求: 一个移动电话用的java通讯簿管理系统,要求最有效率的内存使用方法. 下面两段程序的优缺点,哪个占用内存更少. 第一段: Contact[]c ...
- ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁
作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进 ...
- Java学习笔记四:三目运算符与字符串连接符等
一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...
- Java学习笔记四---打包成双击可运行的jar文件
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
- java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)
ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...
- Java学习笔记--通过java.net.URLConnection发送HTTP请求
http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...
- JAVA学习笔记之JAVA 对象引用以及赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...
- 8.4(Java学习笔记)java脚本引擎(Rhino)
一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...
- Java学习笔记之—Java基础
将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信
随机推荐
- 利用WatchService监控C盘根目录下的文件情况
public static void main(String[] args) throws IOException, InterruptedException { WatchService watch ...
- amh 操作
挂在分区到/home 迁移数据库/usr/local/mysql/data 到/home/data目录 504 卡死 进入kangle后台,选扩展,再选中扩展里的命令选项,修改PHP-NTS的协议为f ...
- 关于js查找和筛选和循环的几种方式
find(); find() 方法返回通过测试(函数内判断)的数组的第一个元素的值. find() 方法为数组中的每个元素都调用一次函数执行: 当数组中的元素在测试条件时返回 true 时, find ...
- Oracle中ORA-01113,ORA-01110的简单解决
分析和解决问题: 1.重起数据库: C:\Documents and Settings\Jacken>sqlplus /nologSQL> conn sys/123456 as sysdb ...
- 【Python】【基础知识】【内置函数】【dir的使用方法】
原英文帮助文档: dir([object]) Without arguments, return the list of names in the current local scope. With ...
- 阿里云服务器挖矿脚本bioset攻击解决
1.问题出现 一大早刚起床,阿里云就给我发了一条短信,提醒我服务器出现紧急安全事件:挖矿程序 阿里云“贴心”地提供了解决方法,不过需要购买企业版的安全服务,本着能自己动手就不花钱原则自己搞了起来 于是 ...
- hdfs基本文件操作
编程实现下列要求: 1.创建一个自己姓名首字母的文件夹 2.在文件夹下创建一个hdfstext1.txt文件,项文件内输入“班级学号姓名HDFS课堂测试”的文字内容: 3.在文件夹下在创建一个好的fs ...
- PHP使用CURL抓取页面
cURL的基本原理 curl是利用URL语法在命令行方式下工作的开源文件传输工具,他能够从互联网上获得各种各样的网络资源.简单来说,curl就是抓取页面的升级版. <?php //1.初始化,创 ...
- Jmeter的操作流程
1.1 什么是 JMeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具.用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域 ...
- Codeforces 1221C. Perfect Team
传送门 考虑如何保证限制,首先团队数最大就是 $min(c,m)$ 但是还不够,每个团队还要 $3$ 个人,所以还要和 $(c+m+x)/3$ 再取 $min$ 这样就满足所有限制了 #include ...