文件名称:管理客户端-intouch2017培训资料
文件大小:4.44MB
文件格式:PDF
更新时间:2024-06-30 01:12:56
ZooKeeper 分布式
3.6 管理客户端 最后,我们将会写一个简单的AdminClient,通过该程序来展示系 统的运行状态。ZooKeeper优点之一是我们可以通过zkCli工具来查看系 统的状态,但是通常你希望编写你自己的管理客户端,以便更快更简单 地管理系统。在本例中,我们通过getData和getChildren方法来获得主从 系统的运行状态。 这些方法的使用非常简单,因为这些方法不会改变系统的运行状 态,我们仅需要简单地传播我们遇到的错误,而不需要进行任何清理操 作。 该示例使用了同步调用的方法,这些方法还有一个watch参数,我 们置为false值,因为我们不需要监视变化情况,只是想获得系统当前的 运行状态。在下一章中我们将会看到如何使用这个参数来跟踪系统的变 化情况。现在,让我们看一下AdminClient的代码: import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.Watcher; public class AdminClient implements Watcher { ZooKeeper zk; String hostPort; AdminClient(String hostPort) { this.hostPort = hostPort; } void start() throws Exception { zk = new ZooKeeper(hostPort, 15000, this); } void listState() throws KeeperException { try { Stat stat = new Stat(); byte masterData[] = zk.getData("/master", false, stat);①