Zookeeper实例Curator API-TestingCluster

来源:互联网 发布:监控系统怎么连接网络 编辑:程序博客网 时间:2024/05/21 10:14

TestingCluster是一个可以模拟Zookeeper集群环境的Curator工具类,能够便于开发人员在本地模拟由N台机器组成的集群环境。

import org.apache.curator.test.TestingCluster;import org.apache.curator.test.TestingZooKeeperServer;/** *  * @ClassName: TestingCluster_Sample * @Description: TODO(这里用一句话描述这个类的作用) * @author RongShu * @date 2017年6月17日 下午2:23:22 * */public class TestingCluster_Sample {public static void 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.print(zs.getInstanceSpec().getServerId() + "-");System.out.print(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.print(zs.getInstanceSpec().getServerId() + "-");System.out.print(zs.getQuorumPeer().getServerState() + "-");System.out.println(zs.getInstanceSpec().getDataDirectory().getAbsolutePath());}cluster.stop();}}输出1-following-C:\Users\陈健飞\AppData\Local\Temp\1497680740231-02-following-C:\Users\陈健飞\AppData\Local\Temp\1497680740235-03-leading-C:\Users\陈健飞\AppData\Local\Temp\1497680740235-1--After leader kill:1-leaderelection-C:\Users\陈健飞\AppData\Local\Temp\1497680740231-02-leaderelection-C:\Users\陈健飞\AppData\Local\Temp\1497680740235-03-leaderelection-C:\Users\陈健飞\AppData\Local\Temp\1497680740235-1


注意:

上面模拟了3台机器组成的集群环境,同时在运行期间,将Leader服务kill掉,从程序的输出来看,其他两台机器重新进行了Leader选举


原创粉丝点击