`
jetway
  • 浏览: 471950 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ZooKeeper——入门

    博客分类:
  • java
 
阅读更多

1.从http://zookeeper.apache.org下载最新版本的ZooKeeper(当前最新版为zookeeper-3.4.5)

 

2.$ tar zxf zookeeper-3.4.5.tar.gz解压

 

3.在conf目录下创建配置文件zoo.cfg

Java代码 复制代码 收藏代码
  1. tickTime=2000  
  2. dataDir=/home/lan/zookeeper   
  3. 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

 

  1. package zookeeper.demo;   
  2.   
  3. import java.io.IOException;   
  4. import java.util.List;   
  5. import java.util.concurrent.CountDownLatch;   
  6.   
  7. import org.apache.zookeeper.CreateMode;   
  8. import org.apache.zookeeper.KeeperException;   
  9. import org.apache.zookeeper.WatchedEvent;   
  10. import org.apache.zookeeper.Watcher;   
  11. import org.apache.zookeeper.Watcher.Event.KeeperState;   
  12. import org.apache.zookeeper.ZooDefs.Ids;   
  13. import org.apache.zookeeper.ZooKeeper;   
  14. import org.apache.zookeeper.data.Stat;   
  15.   
  16. public class ZooKeeperTestCase implements Watcher {   
  17.        
  18.     private static ZooKeeper zk;   
  19.     private String path;   
  20.     private Stat stat;   
  21.     private static CountDownLatch countDown = new CountDownLatch(1);   
  22.        
  23.     public ZooKeeperTestCase(){   
  24.         if(zk == null){   
  25.             try {   
  26.                 System.out.println("Starting ZK:");   
  27.                 zk = new ZooKeeper("192.168.202.129"3000this);   
  28.                 countDown.await();   
  29.                 System.out.println("Finished starting ZK: " + zk);   
  30.             } catch (IOException e) {   
  31.                 zk = null;   
  32.                 e.printStackTrace();   
  33.             } catch (InterruptedException e) {   
  34.                 e.printStackTrace();   
  35.             }   
  36.         }   
  37.     }   
  38.        
  39.     @Override  
  40.     public void process(WatchedEvent event) {   
  41.         if(event.getState() == KeeperState.SyncConnected){   
  42.             countDown.countDown();   
  43.         }   
  44.         System.out.println("-----"+event.getState());   
  45.     }   
  46.        
  47.     public void create() throws KeeperException, InterruptedException{   
  48.         path = zk.create("/zk_java""java_binding".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);   
  49.         System.out.println("created znode:" + path);   
  50.     }   
  51.        
  52.     public void list() throws KeeperException, InterruptedException{   
  53.         List<String> strings = zk.getChildren("/"true);   
  54.         System.out.println("list:"+strings);   
  55.     }   
  56.        
  57.     public void exist() throws KeeperException, InterruptedException{   
  58.         stat = zk.exists(path, true);   
  59.         System.out.println("exits:"+stat.getDataLength());   
  60.     }   
  61.        
  62.     public void get() throws KeeperException, InterruptedException{   
  63.         Stat stat = new Stat();   
  64.         byte[] data = zk.getData(path, true, stat);   
  65.         System.out.print(new String(data));   
  66.         System.out.println(stat);   
  67.     }   
  68.        
  69.     public void set() throws KeeperException, InterruptedException{   
  70.         stat = zk.setData(path, "zk_ooxx".getBytes(), stat.getVersion());   
  71.     }   
  72.        
  73.     public void delete() throws InterruptedException, KeeperException{   
  74.         zk.delete(path, stat.getVersion());   
  75.     }   
  76.        
  77.     public void close() throws InterruptedException{   
  78.         zk.close();   
  79.     }   
  80.   
  81.     public static void main(String[] args) throws Exception {   
  82.         ZooKeeperTestCase zkTest = new ZooKeeperTestCase();   
  83.            
  84.         zkTest.list();   
  85.            
  86.         zkTest.create();   
  87.         zkTest.list();   
  88.            
  89.         zkTest.exist();   
  90.         zkTest.get();   
  91.            
  92.         zkTest.set();   
  93.         zkTest.get();   
  94.            
  95.         zkTest.delete();   
  96.         zkTest.list();   
  97.            
  98.         zkTest.close();   
  99.     }   
  100. }  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics