1-kafka配置檔案簡述
在開始了解檔案儲存前,我們先簡單了解server.properties一些基本配置,在kafka預設配置中資料預設儲存7天,每乙個segment檔案最大大小為1g,當大於1g時建立乙個新的segment檔案,socket請求也不是無限大,這樣可以防止跑光了記憶體。具體可以見如下圖:
kafka資料配置資訊圖:
注意:在kafka中log不是kafka的日誌檔案而是kafka的儲存資料的檔案
2-kafka檔案結構簡單說明
每個分割槽平均分配到多個大小相等segment(段)資料檔案中,但每個segment file訊息數量不一定相等,這樣方便舊 segment file快速被刪除。
注意:log檔案大小超出1g時會建立新的檔案,而index檔名是起始偏移量(比如說當偏移量達到888時候log檔案剛好達到1g,資料還沒有儲存完,那麼這時新建乙個log檔案時,也同時新建乙個index檔案,檔名888.index,在這個888.index裡偏移量從889開始)。
3-kafka是如何做到快速查詢對應的資料
由於kafka不斷寫入資料,那麼kafka是怎麼做到快速查詢到對應的資料的?我們依舊是先看一副圖:
首先根據offset,kafka使用二分查詢法找到對應的index檔案(也是segment),再根據index檔案資訊去log資料查詢。這裡我們需要注意的是:
1-index檔案offset是資料的起始偏移量,每個索引兩兩之間的資料大小是相等的(log.index.interval.bytes)
2-segment是對分割槽的資料進行等大小的分片,index檔案索引是對應的log檔案的位置,而offset是針對乙個分割槽下的偏移量,在新的index檔案裡是遞增的
4-kafka是怎麼定期處理資料
kafka每300000ms檢測是否有符合刪除的資料(log.retention.check.interval.ms),我們可以選擇是按時間長短(一般7天)還是資料大小為刪除條件,這個我們可以去kafka檢視配置進行設定
最後這是自己整理的學習筆記,如果有錯誤希望可以指出,謝謝
推薦閱讀:
kafka中文文件-配置
朱小廝部落格對檔案儲存的解讀(超級值得拜讀)
kafka之二 檔案儲存
儲存分為以下4個層次步驟 1.1 topic 的儲存 kafka broker設定server.properties檔案配置 引數log.dirs log message 日誌儲存在此目錄下 比如建設乙個topic名稱為kafka test,partitions為3 則在 log message檔案...
Kafka 實戰 03 檔案儲存詳解
從圖中的架構我們可以看到,一類訊息即topic分為了三個分割槽partition,每乙個partition分割槽 由多個segment,乙個segment存在乙個.log檔案,乙個.index檔案。1 topic 可以理解為乙個佇列,生產者和消費者面向同乙個 topic 訊息佇列可能有很多訊息,但是...
linux學習筆記二,檔案操作
在一般的檔案操作中,一般分為三個步驟,開啟檔案 操作檔案 關閉檔案。下面我們就安裝這三個步驟講解 一 開啟檔案。include include include int open const char path,int oflags int open const char path,int oflag...