上一个博客我们学习了如何在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();
}