Java 使用zookeeper原声API进行操做

目录


zookeeper API介绍java

导入依赖项apache

操做代码示例 bash

 

 


 

 

 

 

 

zookeeper API介绍

   Zookeeper官方为Java提供了Zookeeper API,可是Zookeeper API并很差用,只须要了解一下便可,之后能够使用ZkClient(对Zookeeper API作了封装)。服务器

 

导入依赖项

  由于zookeeper依赖的jar包比较多,因此推荐使用Maven来管理以来,只须要在pom.xml的依赖中添加下面的内容便可:session

<dependency>
	<groupId>org.apache.zookeeper</groupId>
	<artifactId>zookeeper</artifactId>
	<version>3.4.14</version>
	<type>pom</type>
</dependency>

  

 

操做示例代码

package cn.ganlixin.test;

import java.io.IOException;
import java.util.concurrent.CountDownLatch;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;

public class ZookeeperAPI {

	public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
		
		// 建立一个countDownLatch,用来管理程序运行进度
		CountDownLatch countDownLatch = new CountDownLatch(1);
		
		// 链接串
		//String connectString = "127.0.0.1:2181; 127.0.0.1:2182; 127.0.0.1:2183";

		// 会话超时时间
		int sessionTimeout = 2000;
		
		// 建立zookeeper链接(是异步链接,因此须要让主线程阻塞,在链接成功后,让主线程继续执行)
		ZooKeeper zk = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
			@Override
			public void process(WatchedEvent event) {
				// 事件类型
				EventType type = event.getType();
				// 时间状态
				KeeperState state = event.getState();
				
				if (state == KeeperState.SyncConnected) {
					if (type == EventType.None) {
						System.out.println("成功链接Zookeeper服务器");
						countDownLatch.countDown(); // 让主线程继续运行
					}
				}
			}
		});
		// 阻塞,等待countDownLatch减为0便可继续运行
		countDownLatch.await();
		
		// 利用建立的zk链接,进行各类操做
		zk.create("/test", "hello world".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
		
		byte[] data = zk.getData("/test", null, null);
		System.out.println(new String(data, 0, data.length));
		
		// 关闭链接
		zk.close();
	}
}
相关文章
相关标签/搜索