kafka源碼---源碼目錄介紹

目錄

介紹: 

 一.目錄結構

二.core目錄

三.client目錄


介紹: 

    瞭解kafka項目的目錄結構,才能去更好的閱讀kafka源碼,下面會整體介紹一下kafka源碼目錄結構,然後在着重講core 和client兩個核心目錄,本文是以0.11.0版本爲例講解。

 一.目錄結構

 bin: 啓動腳本;

 clients:生產者和消費者代碼;0.11版本是java語言開發;

 config: 配置文件;

 core : kafka服務實例的代碼,scala語言開發,實現了集羣管理,分區副本管理,消息存儲和消息獲取,網絡通信等功能;

 docs:kakfa文檔

 examples:生產者消費者demo 啓動腳本;

 streams:kafka 流相關代碼;

二.core目錄

   這個包下是kafka核心包,有集羣管理,分區管理,存儲管理,副本管理,消費者組管理,網絡通信,消費管理等核心類。

admin包:執行管理命令的功能;

api 包: 封裝請求和響應DTO對象;

cluster包:集羣對象,例如Replica 類代表一個分區副本,Partition類代表一個分區;

common包: 通用jar包;

controller包: 和kafkaController(kc)相關的類,重點模塊,一個kafka集羣只有一個leader kc,該kc負責 分區管理,副本管理,並保證集羣信息在集羣中同步;

coordinator包:組協調者相關,負責處理消費者組的代碼;

log包: 磁盤存儲相關,重點模塊;

network包: 網絡相關,重點模塊,使用的是NIO,從這裏可學習如何應用java 的NIO類;

consumer包,producer好多廢棄類,無需關注;

server包: kafka實例的各種管理類,核心包,也是重點;

tools 工具類。

 

 

三.client目錄

  下面是kafka項目目錄結構,clients 包下面是生產者producer 和消費者consumer的代碼。如果要看kafka是如何發送消息和消費消息的,可以看這個包下的源碼 。重點關注KafkaProducer 和KafkaConsumer這兩個類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章