zookeeper 源码环境搭建

我使用的开发环境

  • idea 2019.3
  • jdk1.8
  • zookeeper 3.8.0

1、获取源码

zookeeper 是 apache 的开源项目,在 github 上有开源仓库https://github.com/apache/zookeeper.git,克隆到本地即可使用
在这里插入图片描述
这是一个标准的 maven 项目

2、IDEA 导入项目

idea 打开第一步克隆的源码
在这里插入图片描述
找到克隆的源码
在这里插入图片描述
打开之后如下图
在这里插入图片描述
切换分支到3.8.0
在这里插入图片描述

3、修改配置文件

在这里插入图片描述
可以看到,这里和二进制安装包一样,有 conf 和 bin
那就先复制一个配置文件,修改一下端口号
在这里插入图片描述

4、找到启动类,启动服务

二进制安装的时候是执行的 bin 目录下的 zkServer.sh 脚本文件,那么看一下这个文件
在这里插入图片描述
可以看到,启动服务其实是调用的 org.apache.zookeeper.server.quorum.QuorumPeerMain 这个类,看一下这个类
在这里插入图片描述
这个类里有 main 方法,调用一下
在这里插入图片描述
啊哦,编译报错了,那么先用maven编译一下
在这里插入图片描述
编译完成会生成这些找不到的类文件,再次执行 main 方法
在这里插入图片描述
这次说没有参数,转换不了配置文件,那么就设置一下配置文件
在这里插入图片描述
再次启动,又报错
在这里插入图片描述
这是因为pom文件里的一些依赖是 provided,只在编译时候生效,去掉即可

在这里插入图片描述
在这里插入图片描述
如果在调试的过程中遇到类找不到,也可以看一下依赖是否 provided
再次启动
在这里插入图片描述
这次启动成功

5、启动客户端

找到 zkCli.sh,从中找到启动类
在这里插入图片描述
在这里插入图片描述
先运行一下,报了一堆错
在这里插入图片描述
这里是又有依赖找不到了
在这里插入图片描述

在服务器二进制安装的的时候启动客户端是要指定 zookeeper 服务的ip:端口号的,这里也指定一下
在这里插入图片描述
这一次启动成功
在这里插入图片描述
但是看着和服务器上启动的客户端输出不一样
在这里插入图片描述
源码启动输出有如下内容
在这里插入图片描述
预计是依赖找不到
在这里插入图片描述
找到这个依赖加入进来,再次启动
在这里插入图片描述
这次启动是和服务器启动一样了,但是一直在输出心跳日志,这是因为没有指定日志文件,zookeeper新版本用的日志是logback,指定一下日志文件

-Dlogback.configurationFile=file:E:\workspace\test-workspace\zookeeper\conf\logback.xml

在这里插入图片描述
启动结果
在这里插入图片描述
这次启动看似很正常了,但是输入命令却没有反应,网上查是因为 jline 依赖的问题,jline 是一个控制台交互输入输出的工具,具体是什么原因,我也没搞明白,虚拟机参数加上如下参数

-Djline.terminal=jline.UnsupportedTerminal

在这里插入图片描述

再次启动
在这里插入图片描述
这一次完美启动,输入命令正常响应。

好了,zookeeper 源码环境搭建成功,可以愉快的调试和学习 zookeeper 源码了!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值