用java实现zookeeper的增删改查

这篇博客介绍了如何在IDEA中创建Maven项目,并添加Zookeeper依赖。接着展示了如何建立Zookeeper连接,以及详细讲解了创建、删除、修改和查询节点的操作步骤,适合初学者快速掌握Zookeeper的基本操作。
摘要由CSDN通过智能技术生成

1、首先在IDEA创建一个maven项目,并且在pom.xml里添加上

    <dependencies>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.12</version>
        </dependency>
    </dependencies>

稍等一会查看apache.zookeeper是否安装完成,出现下面,表示安装完成

2、新建一个类,在其中实现zookeeper的增删改查

(1)实现与zookeeper的连接

public class Myzk {
    //zk地址
    public static final String zkconnect="81.70.168.94";
    //超时时间
    public static final int timeout=15000;
    public static void main(String[] args) throws IOException {
        ZooKeeper zooKeeper=connect();
    }
    //zk连接方法
    public static ZooKeeper connect() throws IOException {
        ZooKeeper zk=new ZooKeeper(zkconnect,timeout,null);
        System.out.println("zk连接成功");
        return zk;
    }

}

 (2)实现添加操作

    //增加
    public static void create(ZooKeeper zooKeeper,String node,String data) throws InterruptedException, KeeperException {
        System.out.println("新建zookeeper的节点"+node+"节点的数据"+data);
        List<ACL> acl= ZooDefs.Ids.OPEN_ACL_UNSAFE;//ZooDefs.Ids.OPEN_ACL_UNSAFE表示节点"/Zhao"的接入权限

        /*zookeeper的节点类型
        1.PERSISTENT--持久型
        2.PERSISTENT_SEQUENTIAL--持久顺序型
        3.EPHEMERAL--临时型
        4.EPHEMERAL_SEQUENTIAL--临时顺序型
        1、2种类型客户端断开后不会消失
        3、4种类型客户端断开后超时时间内没有新的连接节点将会消息*/
        CreateMode createMode=CreateMode.PERSISTENT;
        zooKeeper.create(node,data.getBytes(),acl,createMode);
        System.out.println("创建成功");
    }

 (3)删除

    //删除
    public static void delete(ZooKeeper zooKeeper,String node) throws InterruptedException, KeeperException {
        //首先确定节点在不在
        Stat stat=zooKeeper.exists(node,false);
        System.out.println("要删除的节点"+node);

        zooKeeper.delete(node, stat.getVersion());
        System.out.println("删除成功");

    }

(3)修改

    //修改
    public static void setData(ZooKeeper zooKeeper,String node,String data) throws InterruptedException, KeeperException {
        //首先确定节点在不在
        Stat stat=zooKeeper.exists(node,false);
        System.out.println("要修改的节点:"+node+"修改的值:"+data);
        zooKeeper.setData(node,data.getBytes(), stat.getVersion());
        System.out.println("修改成功");

    }

(4)查找

    //查
    public static void getData(ZooKeeper zooKeeper,String node) throws InterruptedException, KeeperException {
        Stat stat=zooKeeper.exists(node,false);
        System.out.println("要查找的节点"+node);
        String request=new String(zooKeeper.getData(node,null,null));//因为在ZooKeeper类中getData方法是返回byte[]类型的,因此需要接一下
        System.out.println("要查询的节点"+node+"查询节点的值为"+request);
    }

(5)以上方法通过java实现了zookeeper的增删改查,只需要在主方法中调用即可,相当简单,我这种菜鸟都能够自己实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值