ZooKeeperUtils.java 文件源码

java
阅读 32 收藏 0 点赞 0 评论 0

项目:guagua 作者:
/**
 * Start embed zookeeper server in a daemon thread.
 */
public static int startEmbedZooKeeper() throws IOException {
    String zooKeeperWorkingDir = getZooKeeperWorkingDir();
    boolean isSuccessful = createFolder(zooKeeperWorkingDir);

    if(!isSuccessful) {
        zooKeeperWorkingDir = getZooKeeperWorkingDir("zookeeper_" + System.currentTimeMillis());
        createFolder(zooKeeperWorkingDir);
    }

    final String confName = zooKeeperWorkingDir + File.separator + "zoo.cfg";
    int validZkPort = getValidZooKeeperPort();

    prepZooKeeperConf(zooKeeperWorkingDir, confName, validZkPort + "");

    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            QuorumPeerMain.main(new String[] { confName });
        }
    }, "Embed ZooKeeper");

    thread.setDaemon(true);
    thread.start();

    final String cleanZkFolder = zooKeeperWorkingDir;
    // used local data should be cleaned.
    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                FileUtils.deleteDirectory(new File(cleanZkFolder));
            } catch (IOException ignore) {
            }
        }
    }));

    return validZkPort;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号