Kafka源碼閱讀環境搭建


kafka主要是由scala寫,其源碼質量高,考慮到新版本提交人員的水平高低不同,對閱讀源碼不太好,因此選擇早期的0.10.1版本。下面記錄一下搭建kafka源碼閱讀環境,后面使用。

搭建的基本環境:

OS:Mac(10.12.x);

JDK:1.8.0_191;

Scala-JDK:2.11.7;

Gradle:4.8.1

安裝scala

類似安裝java jdk,參考官網https://www.scala-lang.org/download/2.11.7.html,Mac下可使用brew install scala命令來安裝,最后需配置環境變量,修改~/.bash_profile文件。

# scala
export SCALA_HOME=/Library/scala/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin

安裝完成后,查看版本。

(base) [yangchaolin@youngchaolin-Mac.local ~]$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_191).
Type in expressions to have them evaluated.
Type :help for more information.

安裝gradle

gradle可以理解為類似maven的版本管理工具,如spring就是由gradle來管理。去官網下載對應的安裝包,網址:https://gradle.org/releases/,下載binary-only即可。

下載完成后,也需配置環境變量。

# gradle
export GRADLE_HOME=/Users/yangchaolin/gradle-4.8.1 #gradle的安裝目錄
export PATH=$PATH:$GRADLE_HOME/bin

安裝完成后,查看版本。

(base) [yangchaolin@youngchaolin-Mac.local ~]$ gradle -v

------------------------------------------------------------
Gradle 4.8.1
------------------------------------------------------------

准備kafka源碼

需去kafka官網,下載對應版本的源碼包,網址:http://kafka.apache.org/downloads。

下載完后解壓,這個源碼文件還需要導入依賴jar包,個人使用IDEA來import導入項目,導入完后需使用前面配置好的gradle作為Gradle home地址。

接下來還不能導jar包,需要把鏡像文件下載服務器更換為國內的私服,否則會相當慢,直接導致"time out"報錯。

修改build.gradle

進入kafka源碼包,修改build.gradle文件,在原來配置上,添加ali私服配置。

  repositories {
    # 原來配置上,添加ali私服
  	mavenLocal()
    maven {
        url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    # 原來配置
    mavenCentral()
    jcenter()
  }

把以下文件添加到build.gradle文件開頭。

ScalaCompileOptions.metaClass.daemonServer = true
ScalaCompileOptions.metaClass.fork = true
ScalaCompileOptions.metaClass.useAnt = false
ScalaCompileOptions.metaClass.useCompileDaemon = false

添加init.gradle

上面配置完后,還是下載很慢,就在gradle安裝目錄下進入init.d,在里面添加一個init.gradle腳本文件,添加以下內容。

每次build都會先執行這個腳本,達到全局設置的效果。

(base) [yangchaolin@youngchaolin-Mac.local ~/gradle-4.8.1]$ cd init.d/
(base) [yangchaolin@youngchaolin-Mac.local ~/gradle-4.8.1/init.d]$ ls
init.gradle	readme.txt
(base) [yangchaolin@youngchaolin-Mac.local ~/gradle-4.8.1/init.d]$ cat init.gradle 
# 添加以下內容
allprojects {
    repositories {
        mavenLocal()
		maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
		maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
    }
}

以上完成后,就可以快速下載jar包了,完成kafka源碼閱讀環境的搭建。

可以看到先加載了init.gradle腳本。

以上,就是搭建的過程,期間遇到jar包下載特別慢的情況,參考以下博文完成。如果要debug,還需要配置zookeeper,后續有需要再補充。

參考博文:

(1)https://blog.csdn.net/blueboz/article/details/81414029?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

(2)https://www.jianshu.com/p/319e7a8faa6a

(3)https://www.cnblogs.com/johnny666888/p/12349301.html 有zookeeper的部分


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM