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分布式过程协同技术讲解》