panjianm 发表于 2017-4-18 11:35:48

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]
查看完整版本: ZooKeeper——入门