zookeeper(3)—— zk客户端的使用

本文介绍了Zookeeper的常用客户端,包括原生API和zkClient。原生API的增删改查与监听机制被详细阐述,特别提到其一次性、需要手动注册的特性。而zkClient在操作上的简化,如自动重连和监听管理,是其优于原生API之处。文章对比了两者在使用中的优缺点,并展示了zkClient的监听器接口。
摘要由CSDN通过智能技术生成

目录

一、常用客户端

1.1 原生API

1.1.1 增删改查

1.1.2 监听机制

1.2 zkClient

1.2.1 增删改查

1.2.2 监听机制


一、常用客户端

zk目前有三种客户端:原生API、zkClient、Curator

主要学习原生API、zkClient

1.1 原生API

1.1.1 增删改查

//客户端的基本操作
public class TestJavaApi implements Watcher{ 
	
	private static final int SESSION_TIMEOUT = 10000;
	private static final String CONNECTION_STRING = "127.0.0.1:2181";
	private static final String ZK_PATH = "/zc";
	private ZooKeeper zk = null;
	
	private CountDownLatch connectedSemaphore = new CountDownLatch(1);
	
	//创建zc连接
	public void createConnecting(String connectString,int sessionTimeout) {
		System.out.println("createConnecting,1,正在连接");
		this.releaseConnection();
		try {
			System.out.println("createConnecting,2,正在连接");
			zk = new ZooKeeper(connectString, sessionTimeout, this);
			System.out.println("createConnecting,3,await()");
			connectedSemaphore.await();
			System.out.println("createConnecting,4,连接成功");
		}catch (Exception e) {
			System.out.println("连接失败:" + e.getMessage());
		}
	}
	
	//关闭连接
	public void releaseConnection() {
		if(null != this.zk) {
			try {
				this.zk.close();
			} catch (Exception e) {
				System.out.println("关闭失败:" + e.getMessage());
			}			
		}
	}

	//创建节点
	public boolean createPath(String path,String data) {
		try {
			System.out.println("节点创建成功:" + 
		            this.zk.create(path,data.getBytes(), 
		                	ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL));
		} catch (Exception e) {
			System.out.println("节点创建失败");
		}
		return true;
	}
	
	//读取指定节点的内容
	public String readData(String path) {
		try {
			String resultStr = new String(this.zk.getData(path, false, null));
			System.out.println("节点内容:" + resultStr);
			return resultStr;
		} catch (Exception e) {
			return "";
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值