本篇內容主要講解“java操作zookeeper實例代碼”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java操作zookeeper實例代碼”吧!
package com.rxzx.demo;
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
public class ZKDemo {
//連接zookeeper的超時時長(毫秒)
private static final int OUT_TIME=60000;
//zookeeper集群連接對象
private ZooKeeper zk;
//自定義監聽事件對象
private Watcher wc=new Watcher(){
@Override
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
if(event.getType()==Event.EventType.NodeDataChanged){
System.out.println(event.getPath()+" "+event.getType());
}else{
System.out.println(event.getPath()+" "+event.getType());
}
}
};
//獲取監控對象
public Watcher getWatcher(){
return this.wc;
}
//獲取zookeeper集群連接對象
public ZooKeeper getZooKeeper(){
if(zk==null){
try {
zk=new ZooKeeper("192.168.2.100:2181,192.168.2.101:2181,192.168.2.102:2181",OUT_TIME,null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return zk;
}
//關閉zookeeper連接對象
public void close(){
if(zk!=null){
try {
zk.close();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ZKDemo zd=new ZKDemo();
try {
//獲取zookeeper連接對象
ZooKeeper zk=zd.getZooKeeper();
//遍歷node節點的子節點
List<String> nodelist=zk.getChildren("/node", zd.getWatcher());
for(String s:nodelist){
System.out.println(s);
}
//創建node的子節點son
//zk.create("/node/son", "hello word".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
//判斷數據節點是否存在,如果存在則返回該對象
Stat son=zk.exists("/node/son0000000011", zd.getWatcher());
if(son!=null){
System.out.println(son.getCzxid());
}else{
System.out.println("該節點不存在");
}
//對數據節點的數據內容進行修改
//zk.setData("/node/son0000000011", "wwwwww".getBytes(), -1);
//Stat stat=new Stat();
//獲取數據節點的數據內容
//byte[] d=zk.getData("/node/son0000000011", zd.getWatcher(), null);
//System.out.println(new String(d));
//System.out.println(stat.getCzxid());
zk.delete("/node/son4", -1);
System.out.println("操作完成");
} catch (KeeperException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
zd.close();
}
}
}
到此,相信大家對“java操作zookeeper實例代碼”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。