初探ZooKeeper之Java API使用

本文详细介绍了ZooKeeper的原生API使用方法,包括Maven配置、构造函数使用、连接状态、节点的创建、获取、修改及删除操作。通过实例展示了如何利用ZooKeeper进行分布式协调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. ZooKeeper原生API:

    ZooKeeper

2.  Maven 配置:

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.6</version>
</dependency>

 3.  构造方使用

CountDownLatch countDownLatch = new CountDownLatch(1);
ZooKeeper zookeeper = new ZooKeeper("192.168.80.33:2181,192.168.80.36:2181,192.168.80.39:2181",
        4000, new Watcher() {
    @Override
    public void process(WatchedEvent watchedEvent) {
        //等待zookeeper连接成功后才进行后面的业务逻辑处理
        if (Event.KeeperState.SyncConnected == watchedEvent.getState()) {
            countDownLatch.countDown();
        }
    }
});
countDownLatch.await();

连接状态为:

NOT_CONNECTED → CONNECTING → CONNECTED → CLOSE

4. 创建节点:

final String path = "/zk-persis-thomas";
//创建节点
zookeeper.create(path, "0".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

注:第一个参数为:节点名称;第二参数为:节点值;第三个参数:节点访问权限;第四个参数:节点类型

5. 获取节点:

//根据版本查询数据
Stat stat = new Stat();//Stata 为每个节点的信息
byte[] bytes = zookeeper.getData(path, null, stat);
System.out.println(new String(bytes));

6. 修改节点值:

//修改数据
stat = zookeeper.setData(path, "1".getBytes(), stat.getVersion());

7.删除节点

//删除数据
zookeeper.delete(path, stat.getVersion());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值