Zookeeper 源码环境搭建
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执行失败的问题:
上述命令会下载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"
- 还发现缺少依赖包 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:直接给出相应的参数设置
有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文件夹中)放置到类路径下
。情况2:给出配置文件地址
当org.apache.zookeeper.server.ZooKeeperServerMain类的启动参数只有一个时,则代表着配置文件的路径
。也可以修改conf文件夹中的zoo_sample.cfg配置文件,修改下dataDir指定的路径。然后把该配置文件的路径作为参数:
Zookeeper 源码环境搭建相关推荐
- ZooKeeper源码阅读心得分享+源码基本结构+源码环境搭建
首发CSDN:徐同学呀,原创不易,转载请注明源链接.我是徐同学,用心输出高质量文章,希望对你有所帮助. 一.心得分享 如何阅读ZooKeeper源码?从哪里开始阅读?最近把ZooKeeper源码看了个 ...
- Apache ZooKeeper - 构建ZooKeeper源码环境及StandAlone模式下的服务端和客户端启动
文章目录 源码环境搭建 clone source 源码结构 启动 查找启动类 配置文件 pom文件调整 log4j.properties 以源码的方式启动Server 以源码的方式启动Client 验 ...
- zookeeper3.5.4源码环境搭建
zookeeper3.5.4源码环境搭建 1. 准备工作 渠道 地址 网盘 zk源码下载地址 提取码:5555 注意:因为zookeeper是由ant来构建的,所以需要使用ant命令来转换成工程,然后 ...
- Kafka源码环境搭建
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- spring boot 源码_SpringBoot2.1.x源码环境搭建详解
前言 笔者试着从GitHub上拉取SpringBoot源码.然鹅,在本地IDEA打开后,爆各种编译错误,各种问题.经过反复操作,现在总结一下SpringBoot源码环境搭建的实践,便于后期对于源码的学 ...
- Android源码环境搭建(aosp Ubuntu 16.04)
Android源码环境搭建(aosp Ubuntu 16.04) FrameWork入门课视频链接:https://edu.csdn.net/course/detail/30298 FrameWork ...
- datax源码环境搭建
文章目录 datax源码环境搭建 写在前面 环境 下载源码并编译 错误1 错误2 运行 生产模式 debug模式 datax源码环境搭建 写在前面 DataX 是阿里巴巴集团内被广泛使用的离线数据同步 ...
- win10环境下的spark2.4源码环境搭建
spark2.4源码环境搭建 1.概述 2.版本信息及环境 3.基础环境准备 4.源码准备 5.IDEA设置 5.1 IDEA内maven插件设置与更新 5.2 IDEA内导入spark各个模块 6. ...
- kafka项目启动_Kafka 探险 源码环境搭建
这个 Kafka 的专题,我会从系统整体架构,设计到代码落地.和大家一起杠源码,学技巧,涨知识.希望大家持续关注一起见证成长! 我相信:技术的道路,十年如一日!十年磨一剑! 前言 在阅读源码之前,首先 ...
最新文章
- Oracle中Scott账户常见表的样本查询编程与数据库
- 第十七届智能车竞赛英飞凌专题培训 ——四轮摄像头组入门讲解
- 【Python】Pycharm
- Visual Studio 2013开发 mini-filter driver step by step 获取文件读写内容(6)
- python中import与input_python : import详解。
- iframe有那些缺点
- Office 2007在安装过程中出错
- zTree树形控件讲解
- Python网络编程之基于socket实现文件上传
- python求职意向怎么写_怎样写好求职简历?
- 科比投篮预测——数据处理与分析
- 12.flowable 流程实例 终止流程
- 抗D保 | 抗D宝 | 知道创宇云安全
- 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1
- 学习Emacs系列教程
- Android 移植iperf3.13 测试网络
- 2021年12月中国A股生物制品行业上市企业市值排行榜:百济神州-U位居第二,康希诺-U股价最高(附月榜TOP43详单)
- Thunder-Beta发布-事后诸葛亮会议-2017秋-软件工程第十一次作业
- [RTL]W1C類型的Register是如何工作的
- Excel中将文本逆序显示
热门文章
- HTML5之Javascript多线程
- mysql select 报错
- 如果是能简单解决的问题,就不用想得太复杂了
- python学生管理系统-学生管理系统python
- python3.6手册中文版-python3.6文档中文版
- python爬虫详细步骤-Python爬虫的两套解析方法和四种爬虫实现过程
- 零基础是学java还是python-零基础学习编程,Java、Python你会选择哪个?
- python语言是谁发明的咋读-Python的发明,竟然是因为他不喜欢花括号。
- python与excel的应用-python基础之类与对象的应用-操作excel
- python在日常工作处理中的应用-python在工作中的应用场景介绍