ZooKeeper源码阅读(四)---服务端单机流程

本文深入探讨ZooKeeper服务端的启动流程,包括日志、快照、内存数据管理,会话处理,以及请求限流。服务启动从QuorumPeerMain入口,涉及FileTxnSnapLog、TxnLog和SnapShot类。SessionTrackerImpl线程负责会话管理,而请求通过PrepRequestProcessor、SyncRequestProcessor和FinalRequestProcessor组成的处理链进行。最后,文章概述了ZooKeeper如何接收和处理请求,为理解集群模式奠定基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章我们先来看看单机服务端处理流程,最后再去学习集群模式

 

 1、服务启动

 服务端入口类为QuorumPeerMain,下面为启动流程

    1、main.initializeAndRun(args);
    
    2、initializeAndRun(){
        if (args.length == 1 && config.isDistributed()) {
            runFromConfig(config);
        } 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);
        }
    }

    3、zookeeperserverMain.runFromConfig{
        //log与快照类
        txnLog = new FileTxnSnapLog(config.dataLogDir, config.dataDir);
        //zkserver配置
        ZooKeeperServer zkServer = new ZooKeeperServer();
        //NIO服务器
        cnxnFactory = ServerCnxnFactory.createFactory();
        cnxnFactory.configure(config.getClientPortAddress(), config.getMaxClientCnxns(), 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值