1.创建连接

2.创建节点

3.监听信息

Watcher.class

4.获取节点

Stat stat = new Stat();

zk.getData(Path,true,stat);

5.修改节点数据

-1表示忽略版本

zk.setData("/test1", "testok".getBytes(), -1);

6.删除节点

可以删除多级目录

zk.setData("/test1", "testok".getBytes(), -1)

完整代码如下

package zookeeper;

import org.apache.zookeeper.*;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test; import java.io.IOException;
import java.util.Arrays; public class Demo1 {
//创建连接
ZooKeeper zk = null;
@Before
public void connect() {
try {
zk = new ZooKeeper(
"master:2181,node1:2181,node2:2181",
8000,
null);
} catch (IOException e) {
e.printStackTrace();
}
} @Test
//创建永久性节点
public void creat1(){
try {
zk.create("/test1","testone".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
} @Test
//创建临时节点,会话断开或sessionTimeout时间过期会消失
public void creat2() {
try {
zk.create("/test2", "testtwo".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
//可以通过加死循环阻塞
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} } @Test
public void watch(){
try {
zk.getChildren("/test2", new Watcher() {
public void process(WatchedEvent watchedEvent) {
System.out.println("节点挂了");
System.out.println(watchedEvent); //使用Watcher类中的枚举
}
});
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
//监听一直运行
while (true){ }
} @Test
public void getnode(){
try {
byte[] data = zk.getData("/test1", true, new Stat());
System.out.println(Arrays.toString(data));
//输出结果 [116, 101, 115, 116, 111, 110, 101] } catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
} @Test
public void setnode(){
try {
//-1表示忽略版本
zk.setData("/test1", "testok".getBytes(), -1);
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
} }

Zookeeper简介:

Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务。

Zookeeper默认对外提供服务的端口号为2181

Zookeeper集群内部3个节点之间通信默认使用2888:3888

zookeeper的JAVA API使用的更多相关文章

  1. Linux -- 基于zookeeper的java api(二)

    Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Wa ...

  2. Linux -- 基于zookeeper的java api(一)

    Linux -- 基于zookeeper的java api 首先启动你所有的 zkService.sh 查看状态:检查是否启动正确 [root@hu-hadoop2 ~]# zkServer.sh s ...

  3. zookeeper的java api操作

    zookeeper的java api操作 创建会话: Zookeeper(String connectString,int sessionTimeout,Watcher watcher) Zookee ...

  4. 【分布式】Zookeeper使用--Java API

    一.前言 上一篇博客我们通过命令行来操作Zookeper的客户端和服务端并进行相应的操作,这篇主要介绍如何通过API(JAVA)来操作Zookeeper. 二.开发环境配置 首先打开Zookeeper ...

  5. 分布式服务管理zookeeper的java api

    zookeeper是一个分布式服务管理工具,本身具备高可用性,很多知名分布式系统入hadoop.Hbase等都采用zk管理. 常见的两个应用场景:1.服务的注册与发现 2.集群统一配置 下面看一下使用 ...

  6. Zookeeper使用--Java API

    1  创建节点 创建节点有异步和同步两种方式.无论是异步或者同步,Zookeeper都不支持递归调用,即无法在父节点不存在的情况下创建一个子节点,如在/zk-ephemeral节点不存在的情况下创建/ ...

  7. zookeeper Java API 简单操作示例

    本文主要介绍如何在java IDE中如何应用使用客户端与zookeeper服务器通信. 首先搭建maven环境,并在pom文件中加入zookeeper引用包: <!-- https://mvnr ...

  8. [转载] ZooKeeper的Java客户端API

    转载自 http://www.cnblogs.com/ggjucheng/p/3370359.html http://zookeeper.apache.org/doc/trunk/javaExampl ...

  9. 9. 使用ZooKeeper Java API编程

    ZooKeeper是用Java开发的,3.4.6版本的Java API文档可以在http://zookeeper.apache.org/doc/r3.4.6/api/index.html上找到. Ti ...

随机推荐

  1. CentOS-7部署Docker容器

    为了适应当前容器化的部署方式,故最近也在对docker进行学习.目前的理解是docker服务就像一艘货船,而你的各项服务可以封装在一个个集装箱里,而且在docker里服务的启动非常快,故有必要从基础的 ...

  2. 阿里云服务器sshd-D cpu占用过高

    发现阿里云服务器cpu占用到达了100%,原因是被植入了挖矿程序,解决方法如下 1.使用top命令查看进程id 直接kill杀死该进程过一会就会重新启动. 2.查看该进程所在的文件目录 这个文件基本上 ...

  3. Maven警告解决:Using platform encoding (UTF-8 actually)

    感谢原文作者:Scorpip_cc 原文链接:https://www.jianshu.com/p/9c8c01f6bebc 执行Maven Install打包的时候,提示以下警告信息: [WARNIN ...

  4. idea创建WebService服务端和客户端

    创建服务端 1.file–>new–>project 2.点击next后输入服务端名,点击finish,生成目录如下 3.在 HelloWorld.Java 文件中右击,选 WebServ ...

  5. sms短信网关对接

    因为工作的需求,需要对接短信网关,业务上就是一个注册用户时,需要发送手机验证码;可能别的公司都是使用第三方接口,但是大点的公司,为了安全,他们都有自己的短信消息中心(SMSC) 1.业务需求 - 1. ...

  6. war3 Game

    转载请注明来源:https://www.cnblogs.com/hookjc/ //位置结构.x,y不多说,unknown是3F800000.浮点数1.0?? struct Pos {   DWORD ...

  7. 详解xpath定位

    xpath定位 1.通过开发者工具直接copy 右击copy-copy xpath 2.串联的方式定位元素 from selenium import webdriverfrom time import ...

  8. YOLOv5模型训练及检测

    一.为什么使用YOLOv5 二.软件工具 2.1 Anaconda https://www.anaconda.com/products/individual 2.2 PyCharm https://w ...

  9. Java执行cmd命令、bat脚本、linux命令,shell脚本等

    1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...

  10. SpringCloud--feign的配置加载

    spring cloud feign我们使用 @FeignClient注解,其中有几个核心属性: @AliasFor("name") String value() default ...