博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZooKeeper-API CURD
阅读量:5054 次
发布时间:2019-06-12

本文共 3608 字,大约阅读时间需要 12 分钟。

ZooKeeper Java API

pom.xml 依赖

root
jhxxb
1.0-SNAPSHOT
../root/pom.xml
4.0.0
zookeeper
org.apache.zookeeper
zookeeper
3.4.14
junit
junit
4.12
test
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8

测试代码

public class ZooKeeperTest {    // 集群地址    // private String connectString = "192.168.8.138:2181,192.168.8.136:2181,192.168.8.140:2181";    private String connectString = "127.0.0.1:2181";    private int sessionTimeout = 5000;    private ZooKeeper zk;    @Before    public void init() throws IOException {        BasicConfigurator.configure();        zk = new ZooKeeper(connectString, sessionTimeout, new Watcher() {            @Override            public void process(WatchedEvent event) {            }        });    }    @After    public void close() throws InterruptedException {        zk.close();    }    @Test    public void create() throws KeeperException, InterruptedException {        // 创建节点        System.out.println(zk.create("/zhongguo", "hubei".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT));    }    @Test    public void getChildren() throws KeeperException, InterruptedException {        // 获取节点        System.out.println(zk.getChildren("/", false));    }    @Test    public void getData() throws KeeperException, InterruptedException {        // 获取节点数据        System.out.println(new String(zk.getData("/zhongguo", false, zk.exists("/zhongguo", false))));    }    @Test    public void exists() throws KeeperException, InterruptedException {        // 判断节点是否存在        Stat stat = zk.exists("/zhongguo", false);        System.out.println(stat == null ? "not exist" : "exist");    }    @Test    public void setData() throws KeeperException, InterruptedException {        // 修改子目录节点数据        System.out.println(zk.setData("/zhongguo", "beijing".getBytes(), -1));    }    @Test    public void delete() throws Exception {        // 删除空节点目录        //zk.delete("/zhongguo", -1);        // 删除父节点目录        rmr("/dubbo");    }    /**     * 递归删除,zookeeper 只允许删除叶子节点(空节点)     */    public void rmr(String path) throws Exception {        // 获取路径下的节点        List
children = zk.getChildren(path, false); for (String pathCd : children) { // 获取父节点下面的子节点路径 String newPath = ""; // 递归调用,判断是否是根节点 if (path.equals("/")) { newPath = "/" + pathCd; } else { newPath = path + "/" + pathCd; } rmr(newPath); } // 删除节点,并过滤 zookeeper 节点和 / 节点 if (path != null && !path.trim().startsWith("/zookeeper") && !path.trim().equals("/")) { zk.delete(path, -1); // 打印删除的节点路径 System.out.println("删除节点:" + path); } }}

 


转载于:https://www.cnblogs.com/jhxxb/p/10759618.html

你可能感兴趣的文章
Linux 中将用户添加到组的指令
查看>>
ISAM Indexed Sequential Access Method 索引顺序存取方法
查看>>
spring的value,null标签
查看>>
jQuery html text val方法使用
查看>>
Eclipse寻找JVM的机制
查看>>
Day2:购物车
查看>>
Maven实战(六)--- dependencies与dependencyManagement的区别
查看>>
程序员必备英语.net版(.net菜鸟的成长之路-零基础到精通)
查看>>
DevExpress Components16.2.6 Source Code 重编译教程
查看>>
弹窗 自定义 页面
查看>>
poj2752seek the name, seek the fame【kmp】
查看>>
洛谷P1135 奇怪的电梯【bfs】
查看>>
批量解决 word/wps 中公式和文字不对齐的问题
查看>>
多边形的研究
查看>>
三角函数相关证明
查看>>
THUWC2017 在美妙的数学王国中畅游
查看>>
如何让 vim 可以在命令行执行命令并且附加参数
查看>>
django Models 常用的字段和参数
查看>>
linux -- 嵌入式linux下wifi无线网卡驱动
查看>>
SVN使用教程总结
查看>>