【Kafka源碼】Kafka代碼模塊

Kafka源碼依賴于Scala環(huán)境,首先需要安裝scala,這塊請(qǐng)自行百度進(jìn)行安裝。

傳送門

當(dāng)然,我們要分析源碼,需要下載源碼,請(qǐng)自行從github上面下載。

說(shuō)明:本文使用的kafka版本為0.10.0.1,這是目前公司使用的版本。

下面說(shuō)明下kafka源碼的工程結(jié)構(gòu):


image

下面主要對(duì)core目錄模塊進(jìn)行說(shuō)明,這塊是kafka的核心。

  • admin:管理員模塊,操作和管理topic,paritions相關(guān),包含create,delete topic,擴(kuò)展patitions
  • api:這塊主要負(fù)責(zé)數(shù)據(jù)的組裝,客戶端和服務(wù)端數(shù)據(jù)交互的組裝
  • client:這個(gè)模塊比較簡(jiǎn)單,只有一個(gè)類,主要是獲取一些元數(shù)據(jù),包括topic、broker等
  • cluster:該模塊定義了幾個(gè)在kafka中比較重要的類:Broker,BrokerEndPoint,Cluster,EndPoint,Partition,Replica等,后續(xù)我們會(huì)對(duì)他們之間的關(guān)系進(jìn)行分析
  • common:通用類,定義了一些異常類等等
  • consumer:comsumer處理模塊,負(fù)責(zé)與消費(fèi)者相關(guān)的操作
  • controller:負(fù)責(zé)中央控制器選舉,partition的leader選舉,副本分配,副本重新分配,partition和replica擴(kuò)容
  • coordinator:協(xié)調(diào)器,rebalance的一些協(xié)調(diào)器,比如延遲心跳等
  • javaapi:kafka提供出來(lái)的java生產(chǎn)消費(fèi)的api
  • log:文件存儲(chǔ)模塊,負(fù)責(zé)讀寫所有kafka的topic消息數(shù)據(jù),也就是消息持久化模塊
  • message:封裝多個(gè)消息組成一個(gè)“消息集”或壓縮消息集
  • metrics:內(nèi)部狀態(tài)監(jiān)控模塊
  • network:kafka的網(wǎng)絡(luò)處理模塊,負(fù)責(zé)接受和處理客戶端連接
  • producer:生產(chǎn)者模塊,包括同步和異步發(fā)送消息
  • security.auth:安全認(rèn)證模塊
  • serializer:序列化和反序列化工具
  • server:kafka服務(wù)啟動(dòng)相關(guān)內(nèi)容
  • tools:工具模塊,內(nèi)容挺多,主要是與kafka相關(guān)的工具
  • utils:通用工具模塊,包括zk等等
  • Kafka:程序入口
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容