# zookeeper-3.4.5-src **Repository Path**: sangjiacun_admin/zookeeper-3.4.5-src ## Basic Information - **Project Name**: zookeeper-3.4.5-src - **Description**: zookeeper源码剖析 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-03-01 - **Last Updated**: 2021-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zookeeper 3.4.5 源码剖析 ## 将ZooKeeper源码导入Intellij IDEA中 1. 去官网下载apache-ant-1.10.5-bin.tar.gz,解压缩,然后配置环境变量ANT_HOME,把$ANT_HOME\bin加入到PATH环境变量里去,最后ant -version检查一下ant的版本号,是否安装成功。 ``` PS D:\code> ant -version Apache Ant(TM) version 1.10.9 compiled on September 27 2020 ``` 2. 去官网下载zookeeper-3.4.5-tar.gz,解压缩,在zk目录下, 3. 需要修改依赖的仓库地址: - 修改build.xml文件,将ivy.url替换成下面地址: - `` - 修改ivysettting.xml, 替换maven中央仓库地址 - `` 4. 然后进去执行`ant eclipse`命令,等待几分钟即可,就会看到`build success`的字样。 5. 最后打开intellij idea,选择import project,选择这个zookeeper的源码目录,然后选择from existing external project,选择eclipse项目,也就是把eclipse项目导入intellij idea中,。 6. 然后打开就可以看到源码了,非常的方便。 ## 从启动脚本开始,阅读源码 ## 持久化框架 持久化的类主要在 `src/java/main/org/apache/zookeeper/server/persistence`: - `TxnLog`,接口类型,读取事务性日志的接口。 - `FileTxnLog`,实现TxnLog接口,添加了访问该事务性日志的API。 - `Snapshot`,接口类型,持久层快照接口。 - `FileSnap`,实现Snapshot接口,负责存储、序列化、反序列化、访问快照。 - `FileTxnSnapLog`,封装了TxnLog和SnapShot。 - `Util`,工具类,提供持久化所需的API。 zk主要存放了两类文件 - snapshot(内存快照) - log(事务日志,类似MySQL的binlog,将所有与修改数据相关的操作记录在log中)