【zookeeper 服务端之QuorumPeerMain启动】

启动入口

记得在部署zookeeper服务器时候,我们在查看服务器状态时候,是通过jps来查看的
在这里插入图片描述

该类是zookeeper集群的启动类,Quorum意思是定额,法定人数,peer 对等的。quorumPeer表示的是每个集群启动后,zookeeper集群的数量已经是确认了,还记得我们在zoo.cfg配置的集群列表,如

  server.1=127.0.0.1:2222:2225  
  server.2=127.0.0.1:3333:3335  
  server.3=127.0.0.1:4444:4445

所以,如果zookeeper机器需要增加机器来作扩展时,需要重新修改zoo.cf配置信息,重新启动集群机器。

QuorumPeerMain 作了什么?
 public static void main(String[] args) {
        QuorumPeerMain main = new QuorumPeerMain();
        // 初始化配置信息
         main.initializeAndRun(args);  
    }

具体 看下initializeAndRun具体处理什么?

 protected void initializeAndRun(String[] args) throws ConfigException, IOException {
        // 初始化QuorumPeer配置文件
        QuorumPeerConfig config = new QuorumPeerConfig();
        if (args.length == 1) {
            //解析zoo.cfg配置文件信息
            config.parse(args[0]);
        }
        // 启动清除任务
        DatadirCleanupManager purgeMgr = new DatadirCleanupManager(config.getDataDir(), config.getDataLogDir(), config.getSnapRetainCount(), config.getPurgeInterval());
        purgeMgr.start();
        //判断zookeeper是集群还是单体
        if (args.length == 1 && config.servers.size() > 0) {
            //集群
            this.runFromConfig(config);
        } else {
            LOG.warn("Either no config or no quorum defined in config, running  in standalone mode");
            // 单体
            ZooKeeperServerMain.main(args);
        }

    }

QuorumPeerMain大致流程是先初始化QuorumPeerConfig对象,解析zoo.cfg配置文件,映射到QuorumPeerConfig对象里,启动清除任务,在根据初始化的配置信息判断该zookeeper服务配置的是单体还是集群,如果是集群,则启动集群服务,否则启动单体服务。

附上大体的流程图
[外链图片转存失败(img-swQ94KSj-1566269102289)(evernotecid://FF5B1D5D-C18B-49C9-8595-3E06D0D9FE48/appyinxiangcom/22808690/ENResource/p163)]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值