溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

發(fā)布時(shí)間:2020-07-26 01:32:30 來源:網(wǎng)絡(luò) 閱讀:1065 作者:shayang88 欄目:編程語言

研究zookeeper的源碼,第一步就是搭建環(huán)境,利用idea啟動(dòng)zk的源碼,過程比較簡單,網(wǎng)上的教程也是不少,但是搞起來還是會(huì)遇到各種各樣的問題,這里做個(gè)記錄。

環(huán)境介紹

1、zookeeper源碼3.5.5版本
2、idea編輯器
3、基于ant構(gòu)建zookeeper

步驟

1、安裝ant,并添加環(huán)境變量

1、下載地址:https://ant.apache.org/bindownload.cgi
2、下載版本:1.10.7,zip包
3、解壓,配置環(huán)境變量ANT_HOME=D:\apache-ant-1.10.7-bin\apache-ant-1.10.7
4、編輯Path,增加%ANT_HOME%\bin
5、編輯classpath,增加%ANT_HOME%\lib

2、zookeeper源碼并構(gòu)建

1、下載zk源碼: https://github.com/apache/zookeeper
2、切換到分支:git checkout branch-3.5.5
3、執(zhí)行ant eclipse構(gòu)建:zk不支持idea項(xiàng)目,所有使用ant eclipse 直接構(gòu)建成eclipse項(xiàng)目,構(gòu)建成功會(huì)出現(xiàn)build success字樣。
zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

一般這里不會(huì)報(bào)錯(cuò)。

idea導(dǎo)入zookeeper

1、使用idea導(dǎo)入eclipse項(xiàng)目

zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

2、選擇eclipse項(xiàng)目,一直next即可。

zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

3、啟動(dòng)項(xiàng)目,測試。

1、啟動(dòng)zookeeper服務(wù),找到文件ZooKeeperServerMain,并調(diào)用main方法。
2、發(fā)現(xiàn)報(bào)錯(cuò),Version.java下的類Info無法找到,需要新建這個(gè)類。
3、新建Info文件,即可

package org.apache.zookeeper.version;

public interface Info {
    int MAJOR=1;
    int MINOR=0;
    int MICRO=0;
    String QUALIFIER=null;
    int REVISION=-1; //TODO: remove as related to SVN VCS
    String REVISION_HASH="1";
    String BUILD_DATE="2019-3-4";
}

注意:如果還有其他類找不到,需要多進(jìn)行幾次ant eclipse,或者重新拉zk的代碼,重新執(zhí)行ant eclipse。這里我也是遇到了這種情況,經(jīng)過幾次就可以了。至于為什么還沒有得到答案!

如果啟動(dòng)過程遇到以下情況:
zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

需要配置log4j的配置,參考下一步的配置。

4、配置啟動(dòng)ZooKeeperServerMain參數(shù)
zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

5、重新執(zhí)行ZooKeeperServerMain的main方法,啟動(dòng)zookeeper服務(wù)。
zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

6、注意8080端口不要被其他進(jìn)程占用,因?yàn)閱?dòng)需要這個(gè)端口。

7、在本地使用zkCli.cmd測試服務(wù)是否啟動(dòng)

zookeeper(6)基于Idea啟動(dòng)zookeeper源碼,開啟源碼之旅

接下來可以嘗試zookeeper里的各種測試用例,debug代碼,暢游源碼了。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI