目录
五. 源码分析之Leader选举FastLeaderElection
一. 源码环境搭建
(一)源码下载
1. 官方下载网址:
zookeeper-release-3.5.4下载地址: :https://github.com/apache/zookeeper/tree/release-3.5.4 apache-ant-1.10.6-bin下载地址: https://ant.apache.org/bindownload.cgi


2. 百度网盘下载地址
zookeeper-release-3.5.4下载地址:zookeeper-release-3.5.4
apache-ant-1.10.6-bin下载地址:apache-ant-1.10.6-bin
(二)配置ANT
1. apache-ant-1.10.6-bin.zip 解压,解压是存放的磁盘路径不要有中文
2. 配置系统环境变量,如下图:


3. 测试ANT是否安装成功

(三)编译zookeeper源码
1. 修改配置文件
将zookeeper-release-3.5.4.zip解压,解压存放磁盘路径中含中文,修改zookeeper-release-3.5.4目录下的build.xml配置文件,将此配置文件中第1809行的:
https://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2
替换成:
http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2
2. 编译
在zookeeper-release-3.5.4目录下打开CMD,输入ant eclipse命令 开始编译,如图:

由于网速因素,如编译过程较长,请耐心等待,编译完成,显示结果如下图:

(四)将编译后的源码直接open方式导入idea

(五)version.Info类缺失问题处理
源码导入idea中以后会发现:src/java/main/org/apache/zookeeper/version/Info类缺失,而导致整个源码项目编译失败。下面介绍idea2020.3版本导入zookeeper源码时如何解决这一问题:
1. 找到src/java/main/org/apache/zookeeper/version/util/VerGen.java 这个类,将该类的main方法上添加三个运行参数并删除自动编译:
这三个运行参数为:版本号 1 你自己的编译时间(三个参数之间用空格分隔),如下图:

2. 选中该类,使用快捷键ctrl+shift+F9进行手动编译
3.执行该类的main方法:

4. 执行完毕后,你会发现Info类文件出现在了
org.apache.zookeeper.version目录下,将其拖到src/java/main/org/apache/zookeeper/version目录下。
二. 服务端与客户端的启动配置
(一)服务端启动
-Dlog4j.configuration=file:/Users/ericsun/Documents/zookeeper-release-3.5.4/conf/log4j.properties(以上改成自己的log4j.properties文件的路径)

可以得知单机版启动成功,单机版服务端地址为127.0.0.1:2182。
(二)客户端启动


三. 源码分析之单机模式服务端启动

zookeeper源码分析之单机模式服务端启动_舞鹤白沙编码日志-优快云博客
四. 源码分析之Leader选举总体框架
分析Zookeeper中⼀个核⼼的模块,Leader选举。
总体框架图
对于Leader选举,其总体框架图如下图所示


AuthFastLeaderElection,LeaderElection其在3.4.0之后的版本中已经不建议使⽤。

本文详细介绍了Zookeeper源码搭建环境,服务端与客户端启动配置,以及核心的单机模式启动和Leader选举算法FastLeaderElection的工作原理。深入剖析了集群模式服务端执行流程,适合理解Zookeeper技术的开发者阅读。
最低0.47元/天 解锁文章
649

被折叠的 条评论
为什么被折叠?



