Zookeeper的API操作

一、Java连接Zookeeper

	ZooKeeper zk;
	@Before
	public void connect() throws IOException, InterruptedException {
		CountDownLatch cdl = new CountDownLatch(1);
		// connectString - 连接地址+端口号
		// sessionTimeout - 会话超时时间 - 表示连接超时时间,单位默认为毫秒
		// watcher - 监控者 - 监控连接状态
		// Zookeeper本身是一个非阻塞式连接
		zk = new ZooKeeper("localhost:2181", 5000, new Watcher() {

			// 监控连接状态
			public void process(WatchedEvent event) {

				if (event.getState() == KeeperState.SyncConnected) {
					System.out.println("连接成功~~~");
				}
				cdl.countDown();
			}
		});
		cdl.await();

	}

二、创建节点

// 创建节点
	@Test
	public void create() throws KeeperException, InterruptedException {
		// path - 节点路径
		// data - 数据
		// acl - acl策略
		// createMode - 节点类型
		// 返回值表示节点的实际路径
		String str = zk.create("/node08", "hello,1807".getBytes(), Ids.OPEN_ACL_UNSAFE,
				CreateMode.PERSISTENT_SEQUENTIAL);
		System.out.println(str);
	}

三、删除节点

@Test
	public void delete() throws InterruptedException, KeeperException {
		// path - 节点路径
		// version - 数据版本
		// 在删除节点的时候回比较指定的数据版本和节点的实际数据版本是否一致
		// 如果一致则删除,如果不一致则放弃该操作
		// zk.delete("/node04", 0);
		// -1表示强制执行
		zk.delete("/node04", -1);
	}

四、更新数据

@Test
	public void set() throws KeeperException, InterruptedException{
		// path - 节点路径
		//data - 数据
		// version - 数据版本
		// 返回节点信息
		Stat s = zk.setData("/node02", "hi,zk".getBytes(), -1);
		System.out.println(s);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值