java_api操作zookeeper节点

怼烎@ 2022-06-10 12:26 277阅读 0赞

package com.sanlen.zookeeper.test;

import java.util.Iterator;
import java.util.List;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test;

import com.google.gson.Gson;

public class ZookeeperTest1 {
ZooKeeper zk=null;

  1. @Before
  2. public void init() throws Exception\{
  3. zk=new ZooKeeper("wmxpc1:2181,wmxpc2:2181,wmxpc3:2181",2000,null);
  4. \}
  5. /\*\*
  6. \*增加节点
  7. \* @throws Exception
  8. \*/
  9. @Test
  10. public void createNode() throws Exception\{
  11. //创建临时的带序号的节点

// String create = zk.create(“/eclipse/aaa”, “1212”.getBytes(“utf-8”), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
//创建永久的带序号的节点
// String create = zk.create(“/persistent”, “1212”.getBytes(“utf-8”), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
//创建临时的不带序号的节点
// String create = zk.create(“/ephemeral”, “1212”.getBytes(“utf-8”), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
//创建永久的不带序号的
String create = zk.create(“/ephemeral”, “1212”.getBytes(“utf-8”), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
System.out.println(create);
Thread.sleep(8000);
zk.close();
}
/**
*删除节点
* @throws Exception
*/
@Test
public void delNode() throws Exception{
zk.delete(“/ephemeral”, -1);
zk.close();
}
/**
* 修改节点
* @throws Exception
*/
@Test
public void testSetData() throws Exception{
Stat setData = zk.setData(“/eclipse”, “eclipse vs idea”.getBytes(), -1);
byte[] data = zk.getData(“/eclipse”, false, null);
System.out.println(new String(data,”utf-8”));
zk.close();
}

  1. /\*\*
  2. \* 判断一个节点是否存在
  3. \* @throws Exception
  4. \*/
  5. @Test
  6. public void testExist() throws Exception\{
  7. Stat exists = zk.exists("/eclipse/eee", false);
  8. System.out.println(exists==null?"不存在":"存在");
  9. zk.close();
  10. \}
  11. /\*\*
  12. \* 查询目录下的字节点
  13. \* @throws Exception
  14. \*/
  15. @Test
  16. public void testGetChildren() throws Exception\{
  17. List<String> child = zk.getChildren("/", false);
  18. for (String string : child) \{
  19. System.out.println(string);
  20. \}
  21. zk.close();
  22. \}
  23. /\*\*
  24. \* 存储一个对象的到zookeeper
  25. \* @throws Exception
  26. \*/
  27. @Test
  28. public void testPutObjectIntoZookeeper() throws Exception\{
  29. Person p1=new Person("angleBaby");
  30. Gson gson=new Gson();
  31. String json=gson.toJson(p1);
  32. Stat setData = zk.setData("/aaa", json.getBytes(), -1);
  33. byte\[\] data = zk.getData("/aaa", false, null);
  34. String jsonBack=new String(data);
  35. Person p = gson.fromJson(jsonBack,Person.class);
  36. System.out.println(p.getName());
  37. zk.close();
  38. \}
  39. /\*\*
  40. \* 查询节点的值
  41. \* @param args
  42. \* @throws Exception
  43. \*/
  44. public static void main(String\[\] args) throws Exception \{
  45. ZooKeeper zooKeeper = new ZooKeeper("wmxpc1:2181,wmxpc2:2181,wmxpc3:2181",2000,null);
  46. byte\[\] data = zooKeeper.getData("/aaa/bbb", false, null);
  47. System.err.println(new String(data));
  48. zooKeeper.close();
  49. \}

}

发表评论

表情:
评论列表 (有 0 条评论,277人围观)

还没有评论,来说两句吧...

相关阅读