一、准备
1.eclipse新建一个javaProject工程,并创建一个lib文件夹(folder)
2.将zookeeper.tar.gz解压,把根目录下的一个zookeeper*.jar以
及lib下的所有jar包拷贝到eclipse中的lib目录下(大概六个)
3.在eclipse中全选jar包,右键,Build Path,Add to Build Path
4.即可新建class写内容啦
二、功能:增
注释:在/目录下创建一个eclipse节点,其中存放数据为“hello eclipse”。
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooKeeper;
import org.junit.Test;
public class ZookeeperClientDemo {
@Test
//Eclipse项目中右击属性选择【build path】的【add Libararies】界面 ,选择JUnit导入。
public void testCreate() throws Exception{
//构造一个zookeeper客户端对象
ZooKeeper zk = new ZooKeeper("node01:2181,node02:2181,node03:2181", 2000, null);
//传zookeeper地址;传超时时间;传实现类接口,即收到通知它需要干嘛,不需要则null;
String create = zk.create("/eclipse", "hello eclipse".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//路径;任意数据,最大1M;访问权限,一般用不着;创建模式,四种组合
System.out.println(create);
zk.close();
}
}
三、功能:改
注释:将重复代码写入Before中的方法中。
ZooKeeper zk = null;
@Before
public void test() throws Exception {
zk = new ZooKeeper("node01:2181,node02:2181,node03:2181", 2000, null);
}
@Test
public void testUpdate() throws Exception {
zk.setData("/eclipse", "我爱你".getBytes(), -1);
//-1就是修改所有版本
zk.close();
}
四、功能:查
ZooKeeper zk = null;
@Before
public void test() throws Exception {zk = new ZooKeeper("node01:2181,node02:2181,node03:2181", 2000, null);
@Test
public void testGet() throws Exception {
byte[] data = zk.getData("/eclipse", false, null);
//查那个数据;是否监听;那个版本,null
//得到的是二进制,使用String将其转换为utf-8的编码
System.out.println(new String(data, "utf-8"));
}
五、功能:查所有子节点
ZooKeeper zk = null;
@Before
public void test() throws Exception {zk = new ZooKeeper("node01:2181,node02:2181,node03:2181", 2000, null);
@Test
public void testGetChilder() throws Exception {
List<String> childer = zk.getChildren("/bb", false);
//注意:返回的子节点只有名字,没有路径
for(String child : childer) {
System.out.println(child);
}
zk.close();
}
六、功能:删除
ZooKeeper zk = null;
@Before
public void test() throws Exception {zk = new ZooKeeper("node01:2181,node02:2181,node03:2181", 2000, null);
@Test
public void testDelete() throws Exception {
zk.delete("/eclipse", -1);
//-1就是所有版本
zk.close();
}