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分佈式過程協同技術講解》