一 介绍
Curator是Netflix公司开源的一款Zookeeper客户端框架,Curator解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher等,实现Fluent风格的API接口,目前已经成为Apache的顶级项目,是全世界范围内使用最广泛的Zookeeper客户端之一。
二 编辑pom.xml
1 代码
1 代码
/cakin/2
五 新建DelcuratorNode类
1 代码
执行程序后,节点被删除
六 新建Delcuratorgetsubnode类
1 代码
[node4, node2, node3, node1]
七 新建curatorgetdate类
1 代码
data
42949672981,42949673000,1515239231022,1515245251092,1,4,0,0,4,0,42949672994
八 参考
http://www.jikexueyuan.com/course/2063_3.html?ss=1
Curator是Netflix公司开源的一款Zookeeper客户端框架,Curator解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher等,实现Fluent风格的API接口,目前已经成为Apache的顶级项目,是全世界范围内使用最广泛的Zookeeper客户端之一。
二 编辑pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd";>
<modelVersion>4.0.0</modelVersion>
<groupId>com.cakin</groupId>
<artifactId>zookerper</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>zookerper</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
三 新建Createcuratorsession类
1 代码
package com.cakin.zookerper;
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.curator.retry.RetryNTimes;
import org.apache.curator.retry.RetryUntilElapsed;
public class Createcuratorsession {
public static void main(String[] args) throws InterruptedException {;
//RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//RetryPolicy retryPolicy = new RetryNTimes(5, 1000)
RetryPolicy retryPolicy = new RetryUntilElapsed(5000, 1000);
// CuratorFramework client = CuratorFrameworkFactory
// .newClient("192.168.0.110:2181",5000,5000, retryPolicy);
CuratorFramework client = CuratorFrameworkFactory
.builder()
.connectString("192.168.0.110:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(5000)
.retryPolicy(retryPolicy)
.build();
client.start();
Thread.sleep(Long.MAX_VALUE);
}
}
四 新建CreatecuratorNode类
1 代码
package com.cakin.zookerper;
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.curator.retry.RetryNTimes;
import org.apache.curator.retry.RetryUntilElapsed;
import org.apache.zookeeper.CreateMode;
public class CreatecuratorNode {
public static void main(String[] args) throws Exception {;
//RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//RetryPolicy retryPolicy = new RetryNTimes(5, 1000)
RetryPolicy retryPolicy = new RetryUntilElapsed(5000, 1000);
// CuratorFramework client = CuratorFrameworkFactory
// .newClient("192.168.0.110:2181",5000,5000, retryPolicy);
CuratorFramework client = CuratorFrameworkFactory
.builder()
.connectString("192.168.0.110:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(5000)
.retryPolicy(retryPolicy)
.build();
client.start();
String path = client.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.EPHEMERAL)
.forPath("/cakin/2", "123".getBytes());
System.out.println(path);
Thread.sleep(Long.MAX_VALUE);
}
}
2 测试结果
/cakin/2
五 新建DelcuratorNode类
1 代码
package com.cakin.zookerper;
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.curator.retry.RetryNTimes;
import org.apache.curator.retry.RetryUntilElapsed;
import org.apache.zookeeper.CreateMode;
public class DelcuratorNode {
public static void main(String[] args) throws Exception {;
//RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//RetryPolicy retryPolicy = new RetryNTimes(5, 1000)
RetryPolicy retryPolicy = new RetryUntilElapsed(5000, 1000);
// CuratorFramework client = CuratorFrameworkFactory
// .newClient("192.168.0.110:2181",5000,5000, retryPolicy);
CuratorFramework client = CuratorFrameworkFactory
.builder()
.connectString("192.168.0.110:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(5000)
.retryPolicy(retryPolicy)
.build();
client.start();
client.delete().guaranteed().deletingChildrenIfNeeded().withVersion(-1).forPath("/test5");
Thread.sleep(Long.MAX_VALUE);
}
}
2 测试结果
执行程序后,节点被删除
六 新建Delcuratorgetsubnode类
1 代码
package com.cakin.zookerper;
import java.util.List;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryUntilElapsed;
public class Delcuratorgetsubnode {
public static void main(String[] args) throws Exception {;
//RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//RetryPolicy retryPolicy = new RetryNTimes(5, 1000)
RetryPolicy retryPolicy = new RetryUntilElapsed(5000, 1000);
// CuratorFramework client = CuratorFrameworkFactory
// .newClient("192.168.0.110:2181",5000,5000, retryPolicy);
CuratorFramework client = CuratorFrameworkFactory
.builder()
.connectString("192.168.0.110:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(5000)
.retryPolicy(retryPolicy)
.build();
client.start();
List<String> clist = client.getChildren().forPath("/FirstZnode");
System.out.println(clist.toString());
Thread.sleep(Long.MAX_VALUE);
}
}
2 测试结果
[node4, node2, node3, node1]
七 新建curatorgetdate类
1 代码
package com.cakin.zookerper;
import java.util.List;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryUntilElapsed;
import org.apache.zookeeper.data.Stat;
public class curatorgetdate {
public static void main(String[] args) throws Exception {;
//RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//RetryPolicy retryPolicy = new RetryNTimes(5, 1000)
RetryPolicy retryPolicy = new RetryUntilElapsed(5000, 1000);
// CuratorFramework client = CuratorFrameworkFactory
// .newClient("192.168.0.110:2181",5000,5000, retryPolicy);
CuratorFramework client = CuratorFrameworkFactory
.builder()
.connectString("192.168.0.110:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(5000)
.retryPolicy(retryPolicy)
.build();
client.start();
Stat stat = new Stat();
byte[] ret =client.getData().storingStatIn(stat).forPath("/cakin");
System.out.println(new String(ret));
System.out.println(stat);
Thread.sleep(Long.MAX_VALUE);
}
}
2 测试结果
data
42949672981,42949673000,1515239231022,1515245251092,1,4,0,0,4,0,42949672994
八 参考
http://www.jikexueyuan.com/course/2063_3.html?ss=1