使用Java操作zookeeper的api函数

上一个博客我们学习了如何在zookeeper终端下简单操作一些cli指令,现在我们尝试构建一个maven工程,使用java去操作zookeeper服务

  • 创建一个maven工程,引入依赖文件
 <dependencies>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.collections</groupId>
            <artifactId>google-collections</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>
</dependencies>
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
</build>
  • 在main/java文件夹下新建一个test文件夹,新建ZookeeperApiTest文件,创建永久节点
package cn.itcast.zookeeper_api;

import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.junit.Test;

public class ZookeeperApiTest {
    @Test
    //创建节点
    public void CreateZNode() throws Exception{
        //1.定制一个重试策略:param1:重试间隔时间 param2:重试的最大次数
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1);
        /**2.获取一个客户端对象
         * param1:要链接的zookeeper服务器列表
         * param2:会话的超时时间
         * param3:链接的超时时间
         * param4:重试策略
         */
        String connectionStr = "192.168.59.128:2181,192.168.59.131:2181,192.168.59.132:2181";
        CuratorFramework client = CuratorFrameworkFactory.newClient(connectionStr,8000,8000,retryPolicy);
        //3.开启客户端
        client.start();
        //4.创建节点
        client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/name","world".getBytes());
        //5.关闭客户端
        client.close();
    }
}

这时如果能够成功通过测试的话,我们可以进入zCli查看,使用ls /name就可以看到我们新建的节点信息了

  • 创建临时节点
    临时节点的特点就是其生命周期是随着会话的结束而结束的,所以我们要想看到这个临时节点,可以进行线程休眠10s,在10s内这个节点都是存在的
 //创建临时节点
    public void createTmpZnode() throws Exception{
        //1.定制一个重试策略:param1:重试间隔时间 param2:重试的最大次数
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1);
        /**2.获取一个客户端对象
         * param1:要链接的zookeeper服务器列表
         * param2:会话的超时时间
         * param3:链接的超时时间
         * param4:重试策略
         */
        String connectionStr = "192.168.59.128:2181,192.168.59.131:2181,192.168.59.132:2181";
        CuratorFramework client = CuratorFrameworkFactory.newClient(connectionStr,8000,8000,retryPolicy);
        //3.开启客户端
        client.start();
        //4.创建临时节点
        client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/name1","world".getBytes());
        //5.关闭客户端
        Thread.sleep(10000);
        client.close();
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值