永发信息网

使用curator需要引入zookeeper jar包吗

答案:1  悬赏:10  手机版
解决时间 2021-01-28 11:59
使用curator需要引入zookeeper jar包吗
最佳答案



Curator是Netflix开源的一套ZooKeeper客户端框架,用它来操作zookeeper更加简单方便,按Curator官方所比喻的,guava to JAVA, Curator to Zookeeper,Curator采用了fluent风格的代码,非常简洁。
主要看下,使用curator操作zookeeper的一些基础例子:
主要的功能:
1,在zk上添加,或更新数据
2,删除zk节点上数据
3,读取某个节点上的数据
4,上传一些本地文件到zk节点上
5,检查zookeeper上是否存在某个节点路径
核心代码如下:
package com.qin.curator.zk;
import java.io.File;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.curator.CuratorZookeeperClient;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.CuratorFrameworkFactory.Builder;
import org.apache.curator.framework.api.CreateBuilder;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZKUtil;
import framework.CrudExamples;

public class CuratorTools {
static CuratorFramework zkclient=null;
static String nameSpace="php";
static {
String zkhost="192.168.46.22:2181";//zk的host
RetryPolicy rp=new ExponentialBackoffRetry(1000, 3);//重试机制
Builder builder = CuratorFrameworkFactory.builder().connectString(zkhost)
.connectionTimeoutMs(5000)
.sessionTimeoutMs(5000)
.retryPolicy(rp);
builder.namespace(nameSpace);
CuratorFramework zclient = builder.build();
zkclient=zclient;
zkclient.start();// 放在这前面执行
zkclient.newNamespaceAwareEnsurePath(nameSpace);
}
public static void main(String[] args)throws Exception {
CuratorTools ct=new CuratorTools();
//ct.getListChildren("/zk/bb");
//ct.upload("/jianli/123.txt", "D:\\123.txt");
//ct.createrOrUpdate("/zk/cc334/zzz","c");
//ct.delete("/qinb/bb");
//ct.checkExist("/zk");
ct.read("/jianli/123.txt");
zkclient.close();
}

public void createrOrUpdate(String path,String content)throws Exception{
zkclient.newNamespaceAwareEnsurePath(path).ensure(zkclient.getZookeeperClient());
zkclient.setData().forPath(path,content.getBytes());
System.out.println("添加成功!!!");
}

public void delete(String path)throws Exception{
zkclient.delete().guaranteed().deletingChildrenIfNeeded().forPath(path);
System.out.println("删除成功!");
}

public void checkExist(String path)throws Exception{
if(zkclient.checkExists().forPath(path)==null){
System.out.println("路径不存在!");
}else{
System.out.println("路径已经存在!");
}
}

public void read(String path)throws Exception{
String data=new String(zkclient.getData().forPath(path),"gbk");
System.out.println("读取的数据:" data);
}

public void getListChildren(String path)throws Exception{
List paths=zkclient.getChildren().forPath(path);
for(String p:paths){
System.out.println(p);
}
}

public void upload(String zkPath,String localpath)throws Exception{
createrOrUpdate(zkPath, "");//创建路径
byte[] bs=FileUtils.readFileToByteArray(new File(localpath));
zkclient.setData().forPath(zkPath, bs);
System.out.println("上传文件成功!");
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
商学教育地址好找么,我有些事要过去
插插的意思是什么啊?知道的请说下!
有人在寺庙微信群里,群名是寺庙贵宾群这可以
亚洲的地形特点是DA. 以高原为主B. 以平原、
最近黄金价格一直在涨,黄金价格的趋势与未来
中国人寿保险青海省分公司培训中心地址好找么
检字法的意思是什么啊?知道的请说下!
央行加息意味着什么
【光波波长】光波的波长范围是()
染发剂对理发师眼睛的伤害多大
鸽子第一次产蛋,破了一粒,我取走另一个,会
使用FTP服务下载文件时,不需要知道的是
台式电脑win7 网络连接显示不可用,还有个红
怎么把win7上的PPTX改成可以在Xp上使用的PPT
飞炧的意思是什么啊?知道的请说下!
推荐资讯
女徒的意思是什么啊?知道的请说下!
戴尔 戴尔 Inspiron 7447 笔记本电脑 性能怎
有了存孝﹐不显彦章的意思是什么啊?知道的请
我前两年学u一个说话口吃的人说话,现在我变
新浪微博会显示看过的微博吗?
珠簪的意思是什么啊?知道的请说下!
龙褂的意思是什么啊?知道的请说下!
怎样将相对湿度换算成绝对含水量
解方程:8÷x=3∕10
【美妙的近义词】美妙的意思美妙的近义词是什
万通理财最近有开放了
【王若飞阅读】王若飞阅读答案体现了王若飞的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?