版权声明:未经本人同意不能转载。可联系 ( [email protected] ) https://blog.csdn.net/jaryn_fang/article/details/81545638
Java客户端
- 首先我们需要搭建相应的zookeeper的环境,我们现在使用序【2】中利用docker的host模式搭建的zookeeper集群来测试客户端的连接。
zkClient
1. 测试zkClient连接zookeeper
1.1 maven配置
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency
1.2 测试连接java代码
package cn.jaryn.zkclient;
import org.I0Itec.zkclient.ZkClient;
public class ConnOp {
private static String CONN = "192.168.1.10:2001,192.168.1.10:2004,192.168.1.10:2007";
public static void main(String[] args) {
ZkClient zkClient = new ZkClient(CONN, 4000);
System.out.println(zkClient + "- > success");
}
}
1.3 测试的结果如下
2 zkClient采常用操作
package cn.jaryn.zkclient;
import org.I0Itec.zkclient.IZkDataListener;
import org.I0Itec.zkclient.ZkClient;
import java.util.List;
public class ZookeeperOp {
private static String CONN = "192.168.1.10:2001,192.168.1.10:2004,192.168.1.10:2007";
private static ZkClient getInstance() {
return new ZkClient(CONN, 4000);
}
public static void main(String[] args) {
ZkClient zkClient = getInstance();
// 允许递归操作
zkClient.createPersistent("/zkClientPar/chir" , true);
// 递归删除
zkClient.deleteRecursive("/zkClientPar");
// 获取子节点
List<String> list = zkClient.getChildren("/node");
System.out.println(list);
//事件
zkClient.subscribeDataChanges("/node", new IZkDataListener() {
@Override
public void handleDataChange(String s, Object o) throws Exception {
System.out.println("节点名称: "+ s + " - > " + "节点改变后的值: " + o);
}
@Override
public void handleDataDeleted(String s) throws Exception {
}
});
zkClient.writeData("/node", "node");
System.out.println("success");
}
}