Curator工具类之TestingCluster。

来源:互联网 发布:如何利用淘宝套现 编辑:程序博客网 时间:2024/05/18 01:23

        TestingCluster是一个可以模拟ZooKeeper集群环境的Curator工具类,能够便于开发人员在本地模拟由n台机器组成的集群环境。下面我们将通过模拟一个由3台机器组成的ZooKeeper集群的场景来了解TestingCluster工具类的使用。

public class TestingCluster_Sample {

public static vod main(String[] args) throws Exception {

TestingCluster cluster = new TestingCluster(3);

cluster.start();

Thread.sleep(2000);


TestingZooKeeperServer leader = null;

for (TestingZooKeeperServer zs : cluster.getServers()) {

System.out.println(zs.getInstanceSpec().getServerId() + "-");

System.out.println(zs.getQuorumPeer().getServerState() + "-");

System.out.println(zs.getInstanceSpec().getDataDirectory().getAbsolutePath());

if(zs.getQuorumPeer().getServerState().equals("leading")) {

leader = zs;

}

}

leader.kill();

System.out.println("--After leader kill:");

for (TestingZooKeeperServer zs : cluster.getServers()) {

System.out.println(zs.getInstanceSpec().getServerId() + "-");

System.out.println(zs.getQuorumPeer().getServerState() + "-");

System.out.println(zs.getInstanceSpec().getDataDirectory().getAbsolutePath());

}

cluster.stop();

}

}

         运行程序,输出结果如下:

        在上面这个示例程序中,我们模拟了一个由3台机器组成的ZooKeeper集群,同时在运行期间,将Leader服务器Kill掉。从程序运行的输出结果中可以看到,在Leader服务器被Kill后,其他两台机器重新进行了Leader选举。

哈哈

原创粉丝点击