《源码_Zookeeper》_Zookeeper 服务端启动流程

记录下走过的Zookeeper源码!相互学习!

服务端架构图

13080552-3090c3651adc8cbe.png
image.png

调试相关图

13080552-bdeae56195276fce.png
image.png
13080552-26ac4b225b205812.png
image.png
13080552-01e4b8f77ae873b8.png
image.png
13080552-04a922a94ae18eb6.png
image.png
13080552-c837ad2557166868.png
image.png
13080552-f3e016a49944bcec.png
image.png

debug图

服务端启动流程
>org.apache.zookeeper.server.quorum.QuorumPeerMain.main  main方法 启动 (可通过jps 或者 zkServer.sh查看)
    >org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun 模板模式
        >org.apache.zookeeper.server.quorum.QuorumPeerConfig  zoo.cfg解析
        >org.apache.zookeeper.server.DatadirCleanupManager 为新链接清理数据
        >org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig 通过配置信息启动
            >org.apache.zookeeper.server.ServerCnxnFactory.createFactory() 通过nio创建ServerCnxnFactory
            >org.apache.zookeeper.server.quorum.QuorumPeer 创建QuorumPeer
            >org.apache.zookeeper.server.persistence.FileTxnSnapLog 创建数据库管理器
            >org.apache.zookeeper.server.ZKDatabase 封装zk数据存储结构
            >org.apache.zookeeper.server.quorum.QuorumPeer.start 模板模式
                >org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase
                >org.apache.zookeeper.server.ServerCnxnFactory.start 启动ServerCnxnFactory
                    >org.apache.zookeeper.server.NIOServerCnxnFactory.run 启动ServerCnxnFactory NIO启动
                >org.apache.zookeeper.server.quorum.QuorumPeer.startLeaderElection 初始化leader选举(后面有机会详细说)
                >java.lang.Thread.start
                >org.apache.zookeeper.server.quorum.QuorumPeer.run 启动QuorumPeer
                 >org.apache.zookeeper.server.quorum.QuorumBean JMX相关监控
                 >org.apache.zookeeper.server.quorum.Election.lookForLeader 如果是looking状态 寻找leader(后面有机会详细说)

总结

整个服务端围绕QuorumPeer对象做了cfg文件解析,并创建服务端ServerSocketChannel等待,zk数据结构的生成及临时存储,选举算法,以及运行中的选举leader策略。 (具体选举策略源代码待续)

参考

官网:http://zookeeper.apache.org
书籍:从Paxos到Zookeeper
网课: 推荐 慕课网 图灵学院 谷粒学院

猜你喜欢

转载自blog.csdn.net/weixin_34279184/article/details/87234435