Zookeeper启动之QuorumPeerMain

来源:互联网 发布:unity网络游戏源码 编辑:程序博客网 时间:2024/06/06 16:34


1. 通过zkServer.sh启动zookeeper时,正常指定的QuorumPeerMain作为启动主类。

2.QuorumPeerMain执行main方法,里面主要逻辑是执行initializeAndRun方法。

 public static void main(String[] args) {        QuorumPeerMain main = new QuorumPeerMain();        try {            main.initializeAndRun(args);        ....    }

3.initializeAndRun方法

  (1)通过QuorumPeerConfig.parse方法,解析配置文件

  (2)通过DatadirCleanupManager.start方法,启动清除调度任务

  (3)runFromConfig或ZooKeeperServerMain.main来启动zookkeeper

protected void initializeAndRun(String[] args)        throws ConfigException, IOException, AdminServerException    {        QuorumPeerConfig config = new QuorumPeerConfig();        if (args.length == 1) {//如果指定的配置文件            config.parse(args[0]);//解析配置文件        }        // Start and schedule the the purge task        //启动安排清除任务        DatadirCleanupManager purgeMgr = new DatadirCleanupManager(config                .getDataDir(), config.getDataLogDir(), config                .getSnapRetainCount(), config.getPurgeInterval());        purgeMgr.start();        if (args.length == 1 && config.isDistributed()) {            runFromConfig(config);//启动zookeepeer集群        } else {            LOG.warn("Either no config or no quorum defined in config, running "                    + " in standalone mode");            // there is only server in the quorum -- run as standalone            ZooKeeperServerMain.main(args);        }    }


原创粉丝点击