package com.pactera.client;
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
public class Client {
private static final String connection = "mini0:2181,mini1:2181,mini2:2181";
private static final int timeout = 2000;
private static final String parentNode = "/serverList";
private ZooKeeper zk;
private Watcher wc;
public Client(){
try {
this.zk = new ZooKeeper(connection,timeout,null);
this.wc = new Watcher(){
@Override
public void process(WatchedEvent event) {
List<String> zNode;
try {
zNode = zk.getChildren(parentNode, this);
showServerList(zNode,zk);
} catch (Exception e) {
e.printStackTrace();
}
}
};
} catch (IOException e) {
e.printStackTrace();
}
}
public void listener() throws Exception{
List<String> zNode = this.zk.getChildren(parentNode, this.wc);
showServerList(zNode,zk);
}
public static void showServerList(List<String> zNode, ZooKeeper zk){
System.out.println("当前在线服务器列表:");
for(String zNodeTemp:zNode){
try {
System.out.println("zNode:"+zNodeTemp+"--data:"+zk.getData(parentNode+"/"+zNodeTemp, false, null));
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String args[]) throws Exception{
Client cli = new Client();
cli.listener();
Thread.sleep(Long.MAX_VALUE);
}
}
Java利用zookeeper实现服务器动态上下线感知
需积分: 42 12 浏览量
2017-11-10
20:50:14
上传
评论
收藏 2.26MB RAR 举报
一个人喝不醉
- 粉丝: 1
- 资源: 5