idea操作zookeeper api

0、准备环境

这个是集群的方式,启动需要的三台服务器,开启zookeeper服务端和客户端
在这里插入图片描述

1、导入坐标

		<dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
            <!--<type>pom</type>-->
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

2、创建测试类,写入URL(服务器地址)

这里是三台服务器,是集群的方式,集群的方式看zookeeper的安装

String url = "192.168.64.128:2181,192.168.64.129:2181,192.168.64.130:2181";

3、创建init方法

	ZooKeeper zk;
    @Before
    public void init() throws IOException {
        zk = new ZooKeeper(url, 5000, new Watcher() {
            public void process(WatchedEvent watchedEvent) {
                String path = watchedEvent.getPath();
                Event.KeeperState state = watchedEvent.getState();
                Event.EventType type = watchedEvent.getType();
                System.out.println("路径:"+path+"   状态:"+state+"  事件类型:"+type);

                if ("/txpath/txjavaee".equals(path) && type.equals(Event.EventType.NodeDataChanged)){
                    try {
                        zk.getData("/txpath/txjavaee",true,null);
                    } catch (KeeperException e) {
                        e.printStackTrace();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }


        });
    }

4、创建节点

    /**
     * 创建节点
     */
    @Test
    public void createNode() throws KeeperException, InterruptedException {
        /*已经存在的节点不能重复创建,不然会报错*/
        zk.create("/td/td1","2022/7/7".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zk.create("/td/td2","2020/7/7".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    }

执行方法
在这里插入图片描述

5、删除节点

    /**
     * 删除节点
     */
    @Test
    public void delNode() throws KeeperException, InterruptedException {
        zk.delete("/txpath/td1",-1);
    }

6、更新节点

    /**
     * 更新节点信息
     */
    @Test
    public void setNode() throws KeeperException, InterruptedException {
        zk.setData("/txpath/txjavaee","今天学了zookeeper".getBytes(),-1);
    }

7、获取节点

    /**
     * 获取节点
     */
    @Test
    public void getNode() throws KeeperException, InterruptedException {
        byte[] data = zk.getData("/txpath/txjavaee", true, null);

        setNode();
        setNode();
        setNode();
        System.out.println(new String(data));
    }

结束!!!!


						正确的行动加上勇气决心和毅力,就会获得理想的一切。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值