Zookeeper
【黑马程序员Zookeeper视频教程,快速入门zookeeper技术】
文章目录
- Zookeeper
- 4 Zookeeper JavaAPI 操作
- 4.3 Curator API 常用操作
- 4.3.1 添加节点
4 Zookeeper JavaAPI 操作
4.3 Curator API 常用操作
4.3.1 添加节点
直接开始编写 测试方法
先写一下,在每个测试方法 之前运行建立连接、在每个测试方法运行结束后关闭连接 的方法
再来一个释放资源的
@After
public void close(){
if (client != null){
client.close();
}
}
加上判断,防止空指针异常
OK, 这样后面的方法都可以用了
【创建节点】
/**
* 创建节点:create 持久、临时、顺序、数据
* 1. 基本创建
* 2. 创建节点,带有数据
* 3. 设置节点的类型
* 4. 创建多级节点
* */
@Test
public void testCreate() throws Exception {
//1. 基本创建
String path = client.create().forPath("/app1");
System.out.println(path);
}
注意,我们初始化建立 连接的时候,弄了一个命名空间
但是现在
服务器上 是没有dingjiaxiong
这个节点的
直接运行
节点创建 成功,查看服务器上
没错, 自动创建了
没毛病
而且app1这个 节点是有数据 的
这个是当前 机器的IP地址【本地啊,不是服务器】
即 如果创建节点,没有指定数据,则默认将当前客户端的 ip 作为数据存储
【创建带有数据的节点】
@Test
public void testCreate() throws Exception {
String path = client.create().forPath("/app2","haha".getBytes());
System.out.println(path);
}
运行结果
OK,创建成功
查看 一下
没毛病
【设置节点类型】
@Test
public void testCreate() throws Exception {
String path = client.create().withMode(CreateMode.EPHEMERAL).forPath("/app3");
System.out.println(path);
}
这样就是临时的
运行结果
OK,查看节点
可以看到,啥也没有,这个可以解释一下,我们用API 建立的会话连接 和 在服务器上命令行建立的连接 不是同一个,服务器上一直没关,但是我们 的测试中
方法一完,会话就结束关闭了,所以app3 ,立马删除消失了
现在不要它关,我就要亲眼看看app3 先
在测试方法里面搞个 死循环
@Test
public void testCreate() throws Exception {
String path = client.create().withMode(CreateMode.EPHEMERAL).forPath("/app3");
System.out.println(path);
while (true){
}
}
OK,运行结果
OK, 这边这个 会话就相当于没停了 ,直接查看命令行客户端
没毛病
但是测试方法一停
这个地方要多等一会儿, 我们直接点掉 算意外终止
【创建多级节点】
@Test
public void testCreate() throws Exception {
String path = client.create().creatingParentsIfNeeded().forPath("/app4/p1");
System.out.println(path);
}
运行结果
创建成功了,【这个在 命令行可做不到】
查看命令行客户端
没毛病
【这就是 创建节点了 】