開源客戶端Curator 使用(上)
阿新 • • 發佈:2019-01-29
一 介紹
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
三 新建Createcuratorsession類<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>
1 程式碼
四 新建CreatecuratorNode類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); } }
1 程式碼
2 測試結果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); } }
/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