通过Java代码获取Zookeeper服务器状态
2015-12-22 10:57
507 查看
有的时候,我们想知道Zookeeper集群中哪些服务器属于Leader,哪些属于Follower,哪些属于Observer。
通过命令,可以很容易的获取到Zookeeper服务器的状态:
[hadoop@hadoopcluster84 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/apache/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower
下面我们用Java代码来获取Zookeeper服务器的状态:
public class ServerStatus {
@Test
public void serverStatus() throws IOException {
String host = "10.0.1.84";
int port = 2181;
String cmd = "stat";
Socket sock = new Socket(host, port);
BufferedReader reader = null;
try {
OutputStream outstream = sock.getOutputStream();
// 通过Zookeeper的四字命令获取服务器的状态
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());
}
}
} finally {
sock.close();
if (reader != null) {
reader.close();
}
}
}
}
输出结果:
follower
上面的代码可以改改,通过其他四字命令获取zookeeper集群的状态。
通过命令,可以很容易的获取到Zookeeper服务器的状态:
[hadoop@hadoopcluster84 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/apache/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower
下面我们用Java代码来获取Zookeeper服务器的状态:
public class ServerStatus {
@Test
public void serverStatus() throws IOException {
String host = "10.0.1.84";
int port = 2181;
String cmd = "stat";
Socket sock = new Socket(host, port);
BufferedReader reader = null;
try {
OutputStream outstream = sock.getOutputStream();
// 通过Zookeeper的四字命令获取服务器的状态
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());
}
}
} finally {
sock.close();
if (reader != null) {
reader.close();
}
}
}
}
输出结果:
follower
上面的代码可以改改,通过其他四字命令获取zookeeper集群的状态。
相关文章推荐
- Java观察者设计模式(Observable和Observer)
- 设计模式——观察者模式(Observer)
- Head First -- 观察者模式
- hadoop-HBase-observer的一个例子
- Java 观察者模式( Observer Pattern)
- android设计模式--之观察者模式(Observer)
- RxJava概述
- Observer(观察者)设计模式
- Zookeeper之基于Observer部署架构
- 观察者模式(Observer Pattern)
- 观察者模式lua实现
- 设计模式2—观察者模式
- 设计模式深入学习IOS版(7)观察者模式
- GoF23种设计模式之行为型模式之观察者模式
- [Android&Java]浅谈设计模式-代码篇:观察者模式Observer
- Design Pattern - Observer(C#)
- 五分钟一个设计模式之观察者模式
- 观察者模式(java)浅析
- 我与C++设计模式(十五)——观察者模式
- 为什么进程组的leader不允许调用setsid()?