zk源码解析-2018-11-23

总所周知,zk是用java代码写的,那么启动肯定会调用java的类。那么它具体调用哪个类?两种方法:方法一:查看zkServer.cmd/zkServer.sh启动文件,里面有个关键的类org.apache.zookeeper.server.quorum.QuorumPeerMain.main 。方法二:jps查看zk进程,会看到调用QuorumPeerMain。

配置文件里面是调用了QuorumPeerMain的main方法那么程序启动时他们到底干了什么事情,下面一起解密:

>org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun
解析zoo.cfg文件内容加载到内存中 ,解析下面有个注释Start and schedule the the purge task  大概意思是开始定时执行任务这个不用管
点 cnxnFactory.start();这里有两个实现类一个是NettyServerCnxnFactory另外一个是NIOServerCnxnFactory  怎么知道具体实现哪个类?
返回到runFromConfig方法创建QuorumPeer对象有个createFactory方法
里面是实现NIOServerCnxnFactory这个类
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我的目标:5-7月底写作能力,理解沟通能力得到大幅度提升,自己更加自信。 业力伙伴pp 每日拔草:1.我会觉得主任...
    超人菲菲目标必达阅读 962评论 0 0
  • 2017.4.16 亲爱的孩子们,晚上好,今晚到此时妈妈才洗澡洗漱完毕,给老二你泡的药端到床头发现你已经打呼噜了,...
    来自过去的信阅读 2,047评论 0 0
  • 文/白雪 “你去和你爸睡吧。” “爸爸,妈妈让我跟你睡。” “你去跟你妈睡吧。” “妈妈,爸爸让我跟你睡。” 爸爸...
    白雪的心灵小栈阅读 6,923评论 56 60