ZooKeeper——入门
ZooKeeper——入门博客分类:
[*]ZooKeeper
ZooKeeper
1.从http://zookeeper.apache.org下载最新版本的ZooKeeper(当前最新版为zookeeper-3.4.5)
2.$ tar zxf zookeeper-3.4.5.tar.gz解压
3.在conf目录下创建配置文件zoo.cfg
Java代码
[*]tickTime=2000
[*]dataDir=/home/lan/zookeeper
[*]clientPort=2181
tickTime=2000
dataDir=/home/lan/zookeeper
clientPort=2181
tickTime是发送心跳包的时间间隔
dataDir用于存储Zookeeper的内存数据库快照和更新事务日志(日志目录可另外配置)
clientPort端口用于监听客户端连接
4.启动ZooKeeper
5.连接ZooKeeper
5.在shell中通过help命令查看客户端可以执行哪些命令
6.通过ls命令查看根目录
7.创建一个znode
8.读取znode
9.修改znode
10.删除znode
[*]
package zookeeper.demo;
[*]
[*]
import java.io.IOException;
[*]
import java.util.List;
[*]
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.KeeperState;
[*]
import org.apache.zookeeper.ZooDefs.Ids;
[*]
import org.apache.zookeeper.ZooKeeper;
[*]
import org.apache.zookeeper.data.Stat;
[*]
[*]
public class ZooKeeperTestCase implements Watcher {
[*]
[*] private static ZooKeeper zk;
[*] private String path;
[*] private Stat stat;
[*] private static CountDownLatch countDown = new CountDownLatch(1);
[*]
[*] public ZooKeeperTestCase(){
[*] if(zk == null){
[*] try {
[*] System.out.println("Starting ZK:");
[*] zk = new ZooKeeper("192.168.202.129", 3000, this);
[*] countDown.await();
[*] System.out.println("Finished starting ZK: " + zk);
[*] } catch (IOException e) {
[*] zk = null;
[*] e.printStackTrace();
[*] } catch (InterruptedException e) {
[*] e.printStackTrace();
[*] }
[*] }
[*] }
[*]
[*] @Override
[*] public void process(WatchedEvent event) {
[*] if(event.getState() == KeeperState.SyncConnected){
[*] countDown.countDown();
[*] }
[*] System.out.println("-----"+event.getState());
[*] }
[*]
[*] public void create() throws KeeperException, InterruptedException{
[*] path = zk.create("/zk_java", "java_binding".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
[*] System.out.println("created znode:" + path);
[*] }
[*]
[*] public void list() throws KeeperException, InterruptedException{
[*] List<String> strings = zk.getChildren("/", true);
[*] System.out.println("list:"+strings);
[*] }
[*]
[*] public void exist() throws KeeperException, InterruptedException{
[*] stat = zk.exists(path, true);
[*] System.out.println("exits:"+stat.getDataLength());
[*] }
[*]
[*] public void get() throws KeeperException, InterruptedException{
[*] Stat stat = new Stat();
[*] byte[] data = zk.getData(path, true, stat);
[*] System.out.print(new String(data));
[*] System.out.println(stat);
[*] }
[*]
[*] public void set() throws KeeperException, InterruptedException{
[*] stat = zk.setData(path, "zk_ooxx".getBytes(), stat.getVersion());
[*] }
[*]
[*] public void delete() throws InterruptedException, KeeperException{
[*] zk.delete(path, stat.getVersion());
[*] }
[*]
[*] public void close() throws InterruptedException{
[*] zk.close();
[*] }
[*]
[*] public static void main(String[] args) throws Exception {
[*] ZooKeeperTestCase zkTest = new ZooKeeperTestCase();
[*]
[*] zkTest.list();
[*]
[*] zkTest.create();
[*] zkTest.list();
[*]
[*] zkTest.exist();
[*] zkTest.get();
[*]
[*] zkTest.set();
[*] zkTest.get();
[*]
[*] zkTest.delete();
[*] zkTest.list();
[*]
[*] zkTest.close();
[*] }
[*]}
页:
[1]