java zookeeper_Zookeeper--java操作zookeeper

如果是使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper-3.4.5.jar 和 zkclient-0.1.jar即可。

zookeeper-3.3.4.jar 为官方提供的javaApi,zkClient-0.1jar为在源生api基础上进行扩展的开源JAVA客户端

创建会话方法:客户端可以通过创建一个zookeeper实例来链接zookeeper服务器。

Zookeeper(Arguments)方法(一共4个构造方法,根据参数不同)

参数说明如下:

connectString:连接服务器列表,已“,”分割。

sessionTimeOut:心跳检测时间周期(毫秒)

watcher:事件处理通知器。

canBereadOnly:标识当前会话是否支持只读。

sessionId和sessionPasswd:提供连接zookeeper的sessionId和密码,通过这两个确定唯一一台客户端,目的是可以提供重复会话

注意:zookeeper客户端和服务器端会话的建立是一个异步的过程,也就是说在程序中,我们程序方法在处理完客户端初始化后,立即返回(程序往下执行代码,这样,大多数情况下我们并没有真正构建好一个可用会话,在会话的声明周期处于"CONNECTING"时才算真正建立完毕,所以我们需要使用多线程中的一个工具类)

要导入的maven依赖

org.apache.zookeeper

zookeeper

3.4.6

commons-io

commons-io

2.4

junit

junit

4.12

test

创建一个测试类,我们在test目录下创建ZkCreateDemo.java

da078390243f1206c414bc7db81d880c.png

import org.apache.zookeeper.*;importorg.junit.Before;importorg.junit.Test;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjavax.websocket.Session;importjava.io.IOException;/*java操作zookeeper对象*/

public classZkCreateNodeDemo {private static final Logger logger = LoggerFactory.getLogger(ZkCreateNodeDemo.class);privateSession session;

String url= "192.168.25.8:2181";

ZooKeeper zk;//初始化

@Beforepublic void test01() throwsIOException {

zk= new ZooKeeper(url, 3000, newWatcher() {

@Overridepublic voidprocess(WatchedEvent event) {

String path= event.getPath(); //负责监听的路径

Event.KeeperState state = event.getState(); //负责监听的状态

Event.EventType type = event.getType(); //负责监听类型

logger.info("路径为="+path);

logger.info("状态为="+state);

logger.info("监听类型="+type);

}

});

}//创建节点

@Testpublic void createNode() throwsException{try{

zk.create("/a1", "yangxinlei".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

zk.create("/b1", "yangxinlei12".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

zk.create("/c1", "yangxinlei123".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

}catch(Exception ex){

logger.info("zookeeper创建失败!");

ex.printStackTrace();

}

}//删除节点

@Testpublic void deleteNode() throwsException{

zk.delete("/a1",-1);

}//修改节点

@Testpublic void updateNode() throwsException{

zk.setData("/b1","testUpdate".getBytes(),-1);

}//查询节点

@Testpublic void getNode() throwsException{byte[] data = zk.getData("/c1", true, null);

System.out.println(newString(data));

}

进行单元测试 ,如果不成功,查看一下linux下的防火墙是否关闭,确保自己的linux环境下的防火墙已经关闭,关闭防火墙的命令 service iptables stop

e7d2d47b914dbe8c15f29d2aa77cedb4.png

创建节点成功!可以通过两种方式进行查看

(1) 通过ZooInspector,下载地址为

0e302c52538da6b5ab22b8630d31e93b.png

可以看到节点已经被创建出来

7079ee62eb680f6e1df66f04d3d5b5a5.png

或者在linux下开启客户端 只需要输入命令./zkCli.sh 开启客户端,然后再输入ls /进行查看即可

104af466862a047486373faa2c708497.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值