加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

一起读源码之zookeeper(1) -- 启动分析

发布时间:2020-12-15 06:42:26 所属栏目:Java 来源:网络整理
导读:从本文开始,不定期分析一个开源项目源代码,起篇从大名鼎鼎的zookeeper开始。 为什么是zk,因为用到zk的场景实在太多了,大部分耳熟能详的分布式系统都有zookeeper的影子,比如hbase,storm,dubbo,kafka等等,另外前面提到的RPC框架原理与实现也用到了zoo

从本文开始,不定期分析一个开源项目源代码,起篇从大名鼎鼎的zookeeper开始。
为什么是zk,因为用到zk的场景实在太多了,大部分耳熟能详的分布式系统都有zookeeper的影子,比如hbase,storm,dubbo,kafka等等,另外前面提到的RPC框架原理与实现也用到了zookeeper。

目录
  • 1 环境准备
    • 1.1 导入代码
    • 1.2 设置配置文件
    • 1.3 调试配置
  • 2 启动分析
    • 2.1 QuorumPeerMain
    • 2.2 ZooKeeperServerMain
    • 2.3 ServerCnxnFactory
    • 2.4 ZooKeeperServer
    • 2.5 服务启动
      • 2.5.1 配置cnxnFactory
      • 2.5.2 启动cnxnFactory
        • socket处理线程
        • socket网络请求处理
        • 读取连接请求
        • 创建session
      • 2.5.3 zk服务器启动
        • SessionTracker
      • 2.5.4 ZooKeeperServer请求处理器链介绍
        • RequestProcessor
        • PrepRequestProcessor
        • SyncRequestProcessor
        • FinalRequestProcessor

1 环境准备

首先,下载zk的新版本,最新的稳定版是3.4.10,由于已下载3.4.9.先直接使用。

1.1 导入代码

IDEA直接打开zk目录:

enter description here

项目设置为jdk1.7
然后,将src/java下面的main和generated设置为源码目录,同时将lib目录添加为liabary。

1.2 设置配置文件

在conf目录,新建zoo.cfg,拷贝sample.cfg即可

enter description here

1.3 调试配置

查看bin/zkServer

set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
....
endlocal

调用的是org.apache.zookeeper.server.quorum.QuorumPeerMain,因此QuorumPeerMain,配置调试程序,arguments设置conf/zoo.cfg

enter description here

这样,就可以愉快的Debug代码了-

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读