从本文开始,不定期分析一个开源项目源代码,起篇从大名鼎鼎的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服务器启动
-
2.5.4 ZooKeeperServer请求处理器链介绍
- RequestProcessor
- PrepRequestProcessor
- SyncRequestProcessor
- FinalRequestProcessor
1 环境准备
首先,下载zk的新版本,最新的稳定版是3.4.10,由于已下载3.4.9.先直接使用。
1.1 导入代码
IDEA直接打开zk目录:

项目设置为jdk1.7
然后,将src/java下面的main和generated设置为源码目录,同时将lib目录添加为liabary。
1.2 设置配置文件
在conf目录,新建zoo.cfg,拷贝sample.cfg即可

1.3 调试配置
查看bin/zkServer
set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
....
endlocal
调用的是org.apache.zookeeper.server.quorum.QuorumPeerMain,因此QuorumPeerMain,配置调试程序,arguments设置conf/zoo.cfg

这样,就可以愉快的Debug代码了- (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|