创建空项目,新建一个module-maven
<!--<repositories>
<repostitory>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/
</url>
</repostitory>
</repositories> -->
<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>
<!--java编译插件-->
<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>
</project>
IDEA旁边有一个刷新,或者run一下 下载需要的jar包。
**google-collections需要翻墙下载 github自行处理 **
在main-java 新建一个包 新建一个类
package zookeeper;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.TreeCache;
import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
import org.apache.curator.framework.recipes.cache.TreeCacheListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.junit.Test;
public class zookeeper_api {
@Test
public void createZnode () throws Exception{
//定制重试策略 时间,次数
RetryPolicy retryPolicy =new ExponentialBackoffRetry(1000,1);
//get客户对象
String connectionstr ="192.168.5.100,192.168.5.110,192.168.5.120";
CuratorFramework client =CuratorFrameworkFactory.newClient(connectionstr,8000,8000,retryPolicy);
client.start();
client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello66666","world".getBytes());
//修改数据
//client.setData().forPath("/hello","hello".getBytes());
//得到数据
// byte[] bytes=client.getData().forPath("/hello");
// System.out.println(new String(bytes));
client.close();
}
public void wtachZnode() throws Exception{
//定制重试策略 时间,次数
RetryPolicy retryPolicy =new ExponentialBackoffRetry(1000,1);
//get客户对象
String connectionstr ="192.168.5.100,192.168.5.110,192.168.5.120";
CuratorFramework client =CuratorFrameworkFactory.newClient(connectionstr,8000,8000,retryPolicy);
client.start();
TreeCache treeCache =new TreeCache(client,"/hello");
//设置监听器和处理器过程
treeCache.getListenable().addListener(new TreeCacheListener() {
@Override
public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception {
ChildData data =event.getData();
if(data!=null){
switch (event.getType()){
case NODE_ADDED:
System.out.println("NODE_ADDED"+data.getPath()+"数据"+new String(data.getData()));
break;
case NODE_REMOVED:
System.out.println("NODE_REMOVED"+data.getPath()+"数据"+new String(data.getData()));
break;
case NODE_UPDATED:
System.out.println("NODE_updated"+data.getPath()+"数据"+new String(data.getData()));
break;
}
}
}
});
treeCache.start();
Thread.sleep(100000000);
client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello66666","world".getBytes());
client.close();
}
}