我在使用IDEA导入zookeeper并且尝试运行时,遇到了很多的问题, 如果大家也遇到类似的需求,可以参考这篇文章来做
我会基于ant和maven两种形式来构建zookeeper的源码
环境准备
下载zookeeper源码
在github上搜索zookeeper
, 一般来说,第一个结果就是zookeeper的源码
也可以通过直达通道https://github.com/apache/zookeeper快速进去
我们下载源码,一定不要直接clone他的正在维护的分支,而是要进入release
菜单,下载对外发布的版本。
本次操作我们使用zookeeper-3.5.5版本。
下载zip
或者tar.gz
都可以。也可以通过直达通道直接下载
配置ant
zookeeper默认是基于ant来构建,如果有同学不了解ant,也没必要学习了,毕竟现在使用ant来构建项目的已经很少了。
ant的下载地址https://ant.apache.org/bindownload.cgi
下载好之后,在环境变量里面配置几个东西
|
|
配置好之后,就可以在cmd中执行ant -version. 会得到下面这段信息,说明安装成功
|
|
配置maven
由于我们会用两种形式来构建,所以也需要把maven的环境配置好。
maven的下载地址http://maven.apache.org/download.cgi
我下载的是apache-maven-3.6.1-bin.tar.gz
只需要解压到指定目录就行
配置环境变量
|
|
同样,输入mvn -version
命令,如果得到下面的信息,说明安装成功
|
|
需要注意的是,如果要用到maven来构建,会要从远程私服上下载jar包,默认会从中央仓库上下载,速度很慢。可以把maven的远程私服改成阿里的仓库,具体的教程我就不再这里说明,大家可以搜索下关键字【maven 阿里】就会有相应的教程来指导
基于ant构建zookeeper源码
编译
进入到zookeeper解压的根目录下,执行
|
|
显示如下结果,表示编译成功
导入到IDEA中
选择import project
接着,选择eclipse,然后一直下一步就行
启动zookeeper
针对单机版本和集群版本,分别对应两个启动类
单机:ZooKeeperServerMain
集群:QuorumPeerMain
源码调试,不需要搭建集群,所以直接基于单机环境来启动即可
配置run configuration
按照下面这个位置进行配置
添加application
红色标注部分,分别是ZookeeperServerMain这个类的位置。以及main方法的启动参数zoo.cfg
zoo.cfg默认是不存在的,但是在源码根目录有一个conf目录,里面提供了zoo_sample.cfg。我们只需要复制一份改一个名字即可
配置好之后,直接启动即可
配置日志输出
默认情况下,控制台没有把日志打印出来,应该是没有找到log4j.properties。
配置如下jvm启动参数,指定log4j.properties路径即可
|
|
启动之后,会输出如下日志,表示启动成功, 默认使用2181
的端口号。
|
|
连接测试
zkCli
用zkCli工具来连接。
执行:./zkCli.sh -server 服务器ip:2181
telnet
使用telent 命令, 可以测试telnet ip 2181
maven形式的导入
zookeeper源码没有使用maven来构建,如果一定要用maven,可以自己创建一个maven工程。把zookeeper-server的代码全部拷贝过来即可。
其实本质上就是,自己把它改造成一个maven项目
如果你觉得文章不错,文末的赞 ? 又回来啦,记得给我「点赞」和「在看」哦~