文档章节

【Zookeeper源码一】Zookeeper 源码环境搭建

陶邦仁
 陶邦仁
发布于 2015/11/27 10:36
字数 966
阅读 3201
收藏 5

#0 系列目录#

#1 搭建步骤# ##1.1 到github中下载该项目## 项目地址 https://github.com/apache/zookeeper。下载.zip包到本地解压。

输入图片说明

解压后文件目录:

输入图片说明

##1.2 使用ant对源码编译成eclipse工程## 上述源码还不是eclipse工程。需要使用ant eclipse命令来转换成eclipse工程。ant就不用再说了,自行网上搜索与配置。

cd zookeeper-trunk
ant eclipse

这里来重点说说ant eclipse执行失败的问题:

  1. 上述命令会下载ant-eclipse-1.0.bin.tar.bz2文件,老是下载不成功,无法继续下去,修改源码中build.xml中的配置,将地址:
get src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"

更换成如下地址

get src="http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
  1. 还发现缺少依赖包 commons-collections,在ivy.xml文件中加入如下配置:
<dependency org="commons-collections" name="commons-collections" rev="3.0"/>

上述两个问题解决后,再重新执行ant eclipse命令。

##1.3 通过idea导入eclipse工程## 输入图片说明

将idea的编译器版本设置为1.7。然后整个世界就安静了,终于不再报错了。

#2 运行Zookeeper# 我们首先看下单机版ZooKeeper的启动类org.apache.zookeeper.server.ZooKeeperServerMain,它的启动参数有两种情况:

  1. 情况1:直接给出相应的参数设置

有4个参数,前两个参数必填,后两个参数可选,对客户端暴漏出的端口port,dataDir的目录,tickTime值,maxClientCnxns值(最大的客户端连接数)。下面分别来简单介绍下:

  • 对客户端暴漏出的端口port,即如下客户端代码指定的端口:
new ZooKeeper("192.168.126.130:2181",5000,this)
  • dataDir的目录:

ZooKeeper有两类数据要存储。一种就是事务记录,另一种就是ZooKeeper的内存树中的数据,以快照方式存储。 所以可以给这两种数据指定不同的目录。dataDir用来指定内存树快照的存储位置,dataLogDir用来指定事务记录的存储位置只给出了dataDir的目录,则代表两种数据都存储在该目录下

  • tickTime值,单位ms,默认3000:

**用途1:**用于指定session检查的间隔,服务器会每隔一段时间检查一次连接它的客户端的session是否过期。该间隔就是tickTime。

**用途2:**用于给出默认的minSessionTimeout和maxSessionTimeout,如果没有给出maxSessionTimeout和minSessionTimeout(为-1),则minSessionTimeout和maxSessionTimeout的取值如下:

minSessionTimeout == -1 ? tickTime 2 : minSessionTimeout; maxSessionTimeout == -1 ? tickTime 20 : maxSessionTimeout;

分别是tickTime的2倍和20倍

客户端代码在创建ZooKeeper对象的时候会给出一个sessionTimeout时间,而上述的minSessionTimeout和maxSessionTimeout就是用来约束客户端的sessionTimeout。源码如下:

输入图片说明

  • maxClientCnxns值,用于指定服务器端最大的连接数。

参数说完了,我们就来设置一下:

输入图片说明

同时,ZooKeeper采用log4j来作为日志输出,所以需要将log4j的配置文件(在conf文件夹中)放置到类路径下

  1. 情况2:给出配置文件地址

当org.apache.zookeeper.server.ZooKeeperServerMain类的启动参数只有一个时,则代表着配置文件的路径。也可以修改conf文件夹中的zoo_sample.cfg配置文件,修改下dataDir指定的路径。然后把该配置文件的路径作为参数:

输入图片说明

© 著作权归作者所有

陶邦仁
粉丝 1690
博文 420
码字总数 1483887
作品 0
海淀
技术主管
私信 提问
【知识库-7】【平台类】【组件】SolrCloud搭建

1、Zookeeper集群的安装配置 1.1 zookeeper集群的主机数量是奇数 在成都云上的zookeeper集群主机:101.204.243.107/101.204.243.113/101.204.243.123 1.2 配置环境变量 1.3 加载环境变量 1....

大个鹿
2016/04/06
2
0
ZooKeeper源码研究系列(1)源码环境搭建

1 系列目录 - ZooKeeper源码研究系列(1)源码环境搭建- ZooKeeper源码研究系列(2)客户端创建连接过程分析- ZooKeeper源码研究系列(3)单机版服务器介绍- ZooKeeper源码研究系列(4)集群...

乒乓狂魔
2015/07/29
6K
4
Solr初探(6)——SolrCloud

Solr集群,即是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高...

yuanlaijike
2018/04/12
0
0
zookeeper-3.5.5 集群安装 , php7.2 - zookeeper扩展安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/chaoluo001/article/details/93191694 这两天在捣腾zookeeper 分布式...

超罗
06/21
0
0
linux环境下kafka的搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/changyinling520/article/details/99228607 一.kafka基本实现配置 准...

火腿编程
08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部