zookeeper zkClient api 使用

2021-05-04 03:26

阅读:422

标签:scribe   jar   测试   depend   static   log   watch   private   create   

操作步骤:

  一、引入zkclient的jar包(maven方式)

  

    com.101tec
    zkclient
    0.10
  

  二、调用相关代码

  

package com.zookeeper.api.zkClientApi;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.I0Itec.zkclient.IZkDataListener;
import org.I0Itec.zkclient.ZkClient;

public class ZkClientApi {
	
	private final static String connectString = "192.168.194.128:2181,192.168.194.129:2181,192.168.194.130:2181";
	
	public static void main(String[] args) throws InterruptedException {
		ZkClient zkClient = new ZkClient(connectString,4000);
		//zkClient一次创建多个节点
		zkClient.createPersistent("/zkclient/zkclient1/zkclient1-1", true);
		System.out.println("创建多层节点成功");
		
		List list = zkClient.getChildren("/zkclient");
		System.out.println("获取zkclient节点下的子节点:"+list);
		
		//zkClient删除一个节点,和原生api一样,只能从最底层节点一个一个删除
//		zkClient.delete("/zkclient");
		//zkClient递归删除某个节点及其子节点
		zkClient.deleteRecursive("/zkclient");
		System.out.println("删除zkclient及其下面的子节点成功\n");
		
		//利用watch机制做订阅,使用异步操作处理节点
		zkClient.subscribeDataChanges("/node", new IZkDataListener(){
			public void handleDataChange(String arg0, Object arg1)
					throws Exception {
				System.out.println("节点名称:"+arg0+"-->修改后的值:"+arg1);
			}

			public void handleDataDeleted(String arg0) throws Exception {
				System.out.println("删除节点"+arg0+"成功");
			}
		});
		zkClient.createPersistent("/node","node");
		TimeUnit.SECONDS.sleep(2);
		zkClient.writeData("/node", "node1");
		TimeUnit.SECONDS.sleep(2);
		zkClient.delete("/node");
		TimeUnit.SECONDS.sleep(2);
	}
}

  三、显示测试结果

创建多层节点成功
获取zkclient节点下的子节点:[zkclient1]
删除zkclient及其下面的子节点成功

节点名称:/node-->修改后的值:node
节点名称:/node-->修改后的值:node1
删除节点/node成功

  

zookeeper zkClient api 使用

标签:scribe   jar   测试   depend   static   log   watch   private   create   

原文地址:http://www.cnblogs.com/sxjun/p/7729320.html


评论


亲,登录后才可以留言!