搭建一个多节点的zookeeper源码调试环境,来一步一步跟调源码,下面是步骤
- apache官网下载源码包,同时下载二进制包,用来连接启动的集群测试
https://zookeeper.apache.org/releases.html - 解压,导入idea里面,直接使用idea打开解压的工程即可
- 配置Main函数,增加配置,然后启动
三个node的启动Main配置:
每个Main的配置详情:下面有配置文件的详情,
注意要勾选include dependencies with provided scope,否则会导致缺类异常
Main class是从二进制包的zkServer.sh中找的 - 三个配置文件,放在工程的conf下面
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper_debug/data/node1
dataLogDir=/tmp/zookeeper_debug/log/node1
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2988:3988
server.3=127.0.0.1:3088:4088
admin.serverPort=8188
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper_debug/data/node2
dataLogDir=/tmp/zookeeper_debug/log/node2
clientPort=2182
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2988:3988
server.3=127.0.0.1:3088:4088
admin.serverPort=8288
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper_debug/data/node3
dataLogDir=/tmp/zookeeper_debug/log/node3
clientPort=2183
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2988:3988
server.3=127.0.0.1:3088:4088
admin.serverPort=8388
大家可以自己调整路径。
- 正常启动后,使用zkCli.cmd(linux下是zkCli.sh)连接任意一个站点测试
zkCli.cmd -server 127.0.0.1:2181 - log4j配置,打印日志方便调试
resource下面增加log4j.properties,然后启动,日志就刷刷出来了,可以自己加日志,改代码测试
log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
来源:oschina
链接:https://my.oschina.net/wuxiaofei/blog/4292627