构建步骤
-
github 上下载源码,这里下载的是 3.8.0-SNAPSHOT 版本,目前最新的版本(2021年10月24日)。
-
最新版本的 zk 源码改为使用 maven 构建了,不再使用之前的 ant 构建了。
-
将 conf 下的 log4j.properties 拷贝到 zookeeper-server 的resource下,并将 resource 标记为 resource root
-
将 conf 下的 zoo_samle.cfg 拷贝一份,更名为 zoo.cfg
-
更改 zoo.cfg 下的 dataDir 为 windows 的一个目录
以上步骤的结果如下图:
-
在 zookeeper-server 模块下:org.apache.zookeeper 下增加 version.Info 类
Info类的内容如下:
package org.apache.zookeeper.version; public interface Info { int REVISION = 1; int MAJOR = 3; int MINOR = 5; int MICRO = 6; String QUALIFIER = null; String REVISION_HASH = "c11b7e26bc554b8523dc929761dd28808913f091"; String BUILD_DATE = "10/08/2019 20:18 GMT"; }
如下图:
-
编译 Jute 模块,不然会报 ACL 不存在的错
如下图:
-
更改运行参数,改为 zoo.cfg 的路径。并勾上 include provided scope dependencies,如下图:(这个运行界面为啥变成这样了,我也不晓得)。一定要勾上包含provided scope,不然会报很多类找不到的错误(java.lang.NoClassDefFoundError)
-
到这里就可以启动了
服务端启动类:QuorumPeerMain(集群版本启动,如果是单机版,会自动转到 ZooKeeperServerMain 启动 ) 客户端启动类:ZooKeeperMain
-
Finish …