一、基于java API初探zookeeper的使用
(1)建立连接
public static void main(String[] args) { //NOT_CONNECTED-->CONNECTING-->CONNECTED-->CLOSE 连接的状态 try { final CountDownLatch countDownLatch = new CountDownLatch(1); ZooKeeper zooKeeper = new ZooKeeper("192.168.25.129:2181,192.168.25.130:2181,192.168.25.131:2181", 4000, new Watcher() { @Override public void process(WatchedEvent event) { // TODO Auto-generated method stub if(Event.KeeperState.SyncConnected == event.getState()){ //如果接收到服务端响应事件,连接成功 countDownLatch.countDown(); } } }); countDownLatch.await(); System.out.println(zooKeeper.getState());//CONNECTING //Thread.sleep(1000); //System.out.println(zooKeeper.getState());//CONNECTED zooKeeper.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
(2)节点数据
public static void main(String[] args) { //NOT_CONNECTED-->CONNECTING-->CONNECTED-->CLOSE 连接的状态 try { final CountDownLatch countDownLatch = new CountDownLatch(1); ZooKeeper zooKeeper = new ZooKeeper("192.168.25.129:2181,192.168.25.130:2181,192.168.25.131:2181", 4000, new Watcher() { @Override public void process(WatchedEvent event) { // TODO Auto-generated method stub if(Event.KeeperState.SyncConnected == event.getState()){ //如果接收到服务端响应事件,连接成功 countDownLatch.countDown(); } } }); countDownLatch.await(); System.out.println(zooKeeper.getState());//CONNECTING //Thread.sleep(1000); //System.out.println(zooKeeper.getState());//CONNECTED //添加节点 zooKeeper.create("/lf00","123".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); Thread.sleep(1000); Stat stat = new Stat(); //得到当前节点的值 byte[] data = zooKeeper.getData("/lf00", null, stat); System.out.println(data.toString()+"---"+stat.getVersion()); //修改当前节点的值 zooKeeper.setData("/lf00", "124".getBytes(), stat.getVersion()); //得到当前节点的值 byte[] data2 = zooKeeper.getData("/lf00", null, stat); System.out.println(data2.toString()+"---"+stat.getVersion()); //删除节点 zooKeeper.delete("/lf00", stat.getVersion()); zooKeeper.close(); System.in.read();//阻塞进程 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
的增删改查