Zookeeper是开源高可用的分布式协同服务,在分布式系统中应用广泛,代码量适中,适合阅读和学习。首先从开发环境的搭建开始介绍。
环境和工具
- LZ用的是windows10,windows皆可把
- Git,Ant,Intellij Idea(eclipse也可以),版本随意,LZ用的是最新的。
- Java 1.8
项目下载
从apache zookeeper上查找项目地址,选用在GitHub上的项目:https://github.com/apache/zookeeper
用git clone https://github.com/apache/zookeeper.git
下载源码,目前构建的版本是3.6.0-SNAPSHOT
工程构建
进入源码目录,执行
ant eclipse
and ant build
保证BUILD SUCCESSFUL, 可能会失败的原因就是依赖包下载不了或缺少依赖包,如果遇到这种情况就需要修改ivy.xml和build.xml,需要熟悉ant和ivy。不过最新的代码应该不会构建失败,至少LZ幸运地构建成功了。
启动服务
进入zookeeper/conf,复制zoo_sample.cfg,并改名为zoo.cfg
进入zookeeper/bin,执行zkServer.cmd 启动服务,将读取默认的配置路径zookeeper/conf/zoo.cfg来启动服务,默认监听2181端口
默认配置启动时,还启动了Jetty,占用了8080端口
客户端连接测试
执行zkCli.cmd,使用客户端连接上zk,可以使用基本命令ls。
使用Intellij IDEA导入工程,并启动zk
打开IDEA,导入工程,选择eclipse工程,来导入zookeeper。
打开zkServer.cmd,看下启动类是org.apache.zookeeper.server.quorum.QuorumPeerMain,在IDEA找到QuorumPeerMain,右键run,然后修改run配置
改完配置,将conf/log4j.properties配置拷贝到zookeeper/src/java/main路径下,这样log4j配置就能生效了,重新run,没报错,再用zkCli连接测试下没问题。