导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:337
阅读量:1472447
访问量:166454
至今:
×
云标签 标签球>>
云标签 - Su的技术博客
博文->>首页 博主的更多博文>>
【zk源码】2-zk启动流程
Tags : Zookeeper,zk,源码发表时间: 2018-04-28 23:13:32
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
比如: 转自:Su的技术博客  原文地址:




1. 从zkServer.sh启动脚本可以看到启动类QuorumPeerMain


2. 调用initializeAndRun初始化参数和启动服务:
   ①解析配置文件zoo.cfg,
   ②DatadirCleanupManager启动和调度清洗任务,

   ③如果启动加上配置文件参数且有severs配置,则启动集群模式,否则启动standalone单机模式


3. 单机:
   1) 启动ZooKeeperServerMain
   2) 反射创建连接工厂(无配置,默认):NIOServerCnxnFactory
   3) 调用其configure,初始化连接等参数
   4) 启动startup:
       ①保证当前线程是启动着;
       ②设置zkServer;
       ③加载、初始化zkDb;

       ④创建并且启动SessionTracker,启动请求处理器,注册JMX,记录状态state=RUNNING,notifyAll()其它线程。


4.
   1) 创建QuorumPeer,并且初始化
   2) QuorumPeer.start
   3) 加载、初始化zkDb;
   4) 启动客户端连接管理工厂;
   5) 开始Leader选举
   6) quorumPeer线程根据状态(LOOKING、OBSERVING、FOLLOWING、LEADING)进行while循环处理



系列:

    0-ZooKeeper介绍 https://blog.verysu.com/article/381

    1-IDEA导入Zookeeper源码 https://blog.verysu.com/article/366


PS:若有不对的地方,欢迎指正!


打赏
打赏
关注公众号
公众号
类别:源码| 阅读(1269)| 赞 (0)
评论
暂无评论!
发表评论
昵  称:

验证码:

内  容:

    同时赞一个 赞