前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >源码分析(1)ZooKeeper源码环境搭建

源码分析(1)ZooKeeper源码环境搭建

作者头像
Java架构师必看
发布2021-06-11 17:59:39
4390
发布2021-06-11 17:59:39
举报
文章被收录于专栏:Java架构师必看

源码分析(1)ZooKeeper源码环境搭建

强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

1 搭建步骤

1.1 到github中fork该项目

项目地址 https://github.com/apache/zookeeper。fork完成之后就存至自己的仓库中了。

1.2 clone上述自己的仓库地址到本地

先看下大体的代码格式:

1.3 使用ant对源码编译成eclipse工程

首先选定一个分支,我自己选择branch-3.4分支来进行源码研究。即

代码语言:javascript
复制
git checkout branch-3.4

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

代码语言:javascript
复制
ant eclipse

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

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

1.4 导入项目到eclipse工程中

将eclipse的编译器版本设置为1.7。然后整个世界就安静了,终于不再报错了。下面就是要看看如何在eclipse中运行

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文件夹中)放置到类路径下。 所以该项目右键,Build Path-》Add Class Folder 添加conf文件夹作为类路径的一部分。 然后就可以Run了。 情况2:给出配置文件地址 当org.apache.zookeeper.server.ZooKeeperServerMain类的启动参数只有一个时,则代表着配置文件的路径。 也可以修改conf文件夹中的zoo_sample.cfg配置文件,修改下dataDir指定的路径。然后把该配置文件的路径作为参数
    • 3 结束语 至此完成了ZooKeeper的源码环境搭建,可以随意修改和debug了。下一篇文章就会介绍下客户端和服务器端的交互过程。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 搭建步骤
    • 1.1 到github中fork该项目
      • 1.2 clone上述自己的仓库地址到本地
        • 1.3 使用ant对源码编译成eclipse工程
          • 1.4 导入项目到eclipse工程中
          • 2 运行ZooKeeper
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档