监控zookeeper集群中某个zookeeper实例是否宕机
/**
* 监听Zookeeper集群中某个Zookeeper实例是否宕机
* @author Administrator
*
*/
public class ZookeeperServiceStatusTest {
private static final String HOST = "192.168.0.128";
private static final Integer PORT = 2182;
@Test
public void serverStatus() throws IOException {
Socket sock = null;
BufferedReader reader = null;
String cmd = "status";
try {
sock = new Socket(HOST, PORT);
OutputStream outstream = sock.getOutputStream();
// 通过Zookeeper的status命令获取服务器的状态
outstream.write(cmd.getBytes());
outstream.flush();
sock.shutdownOutput();
reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
// if (line.indexOf("Mode: ") != -1) {
// System.out.println(line.replaceAll("Mode: ", "").trim());
// }
System.out.println(line);
}
} catch (Exception e) {
System.out.println("Zookeeper 地址:" + HOST + ":" + PORT + "连接失败" + "msg:" + ExceptionUtils.getStackTrace(e));
} finally {
if (sock != null) {
sock.close();
}
if (reader != null) {
reader.close();
}
}
}
}