zookeeper會話及普遍模型

1,使用zkEnv.sh配置classpath路徑,建立MyEnv.sh文件

ZOOBINDIR=“<path_to_distro>/bin”

. "ZOOBINDIR"/zkEnv.sh

運行完之後source一下MyEnv.sh文件

2,創建Master.java文件,如下所示:

import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.WatchedEvent;
import java.io.*;
public class Master implements Watcher{
ZooKeeper zk;
String hostPort;


Master(String hostPort){
this.hostPort = hostPort;
}


void startZK() throws IOException{
zk = new ZooKeeper(hostPort,15000,this);
}


public void process(WatchedEvent e){
System.out.println(e);
}


public static void main(String args[])throws Exception{
Master m = new Master(args[0]);
m.startZK();
Thread.sleep(60000);
}
}

3,編譯master.java:

javac -cp $CLASSPATH Master.java

4,啓動zookeeper服務,運行master文件:

java -cp $CLASSPATH Master 127.0.0.1:2181

即完成自己設置zookeeper會話。

5,Zookeeper是一個主從模型的框架,其應用中的使用的通用代碼模型爲:

1)進行異步調用。

2)實現回調對象,並傳入異步調用函數中。

3)如果操作需要設置監視點,實現一個watcher對象,並傳入異步調用函數中。

以下爲exists的異步調用示例代碼:

zk.exists("/myZnode",

myWatcher,

existsCallback,

null);

Watcher myWatcher = new Watcher() {
public void process(WatchedEvent e){

}

}

StatCallback existsCallback = new StatCallback() {
public void processResult(int rc, String path, Object ctx, Stat stat){

}

};

摘自:《zookeeper分佈式過程協同技術講解》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章