如果想编写一个监控Zookeeper的Java程序,可以通过两种方式 :
(1)通过TelnetClient发送命令 ,命令的详解参考:
http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_zkCommands
(2)通过JMX,说明请参考:
http://zookeeper.apache.org/doc/trunk/zookeeperJMX.html
本文通过一个简单的例子来演示如何通过TelnetClient发送mntr命令获取Zookeeper的监控数据
写一个Telnet的工具类
package com.eric.agent.utils;
import org.apache.commons.net.telnet.TelnetClient;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
/**
* Telnet操作器,基于commons-net-2.2.jar
*
* @author aihua.sun
* @date 2015/4/9
* @since V1.0
*/
public class TelnetTools {
private String prompt = ">"; //结束标识字符串,Windows中是>,Linux中是#
private char promptChar = '>'; //结束标识字符
private TelnetClient telnet;
private InputStream in; // 输入流,接收返回信息
private PrintStream out; // 向服务器写入 命令
/**
* @param termtype 协议类型:VT100、VT52、VT220、VTNT、ANSI
* @param prompt 结果结束标识
*/
public TelnetTools(String termtype, String prompt) {
telnet = new TelnetCli