kafka高效之一 檔案系統

2021-07-27 11:41:47 字數 1415 閱讀 8767

kafka關鍵特⾊

• 可伸縮架構

• 高吞吐量

• consumer自動負載均衡

• 支援集群多副本 而

本部落格是乙個kafka檔案系統深入過程

儲存結構

目的:提高

磁碟利用率

和訊息處理效能

。1. 

在kafka檔案系統中,同乙個topic下有多個不同partition,每個partition建立乙個

目錄。即

topic下有分割槽的子目錄。

2. 每個partion相當於乙個巨型檔案被

平均分配到多個大小相等的多個segment(段)檔案中。但每個段segment file訊息數量不一定相等,這種特性方便old segment file快速被刪除。

即分割槽目錄下log檔案大小一樣。而且乙個分割槽段檔案(

log檔案

)對應乙個索引檔案(

index檔案)

3. 每個partiton只需要支援順序讀寫就行了,segment檔案生命週期由服務端配置引數決定。

4. index為

稀疏索引

結構,並不儲存每條記錄的元資料資訊

如何在partition中快速定位segment file同一

個topic

下有不同分割槽,每個分割槽下面會劃分為多個(段

)檔案,只有一

個當前檔案在寫

(乙個分割槽對應乙個消費者)

,其他檔案唯讀。當寫滿

乙個檔案(寫滿的意思是達到設定值)則切換檔案,新建

乙個當前檔案用來寫,老的當前檔案切換為唯讀。檔案的命名以起始偏移量來命名。刪除檔案時,使用了寫時複製技術。

當消費者要拉取某個訊息起始偏移量位置的資料變的相當簡單,只要根據

傳上來的

offset

⼆分查詢

檔案列表

,定位到具體檔案,然後

根據索引檔案⼆分搜尋

,定位到

index中的offset,讀取log檔案的偏移量,定位到log,

即可開始傳輸資料。

高效檔案系統特點  1.

乙個大檔案分成多個小檔案段。

2.多個小檔案段,容易定時清除或刪除已經消費完檔案,減少磁碟

占用3.

index,log

全部對映到memory

直接操作,使用零拷貝加頁快取技術,避免segment file被交換到磁碟增加io操作次數。

4.根據索引元資料資訊,可以確定consumer每次批量拉取最大msg chunk數量。

5.索引檔案元資料儲存用的是相對前個segment file的 offset儲存,節省空間⼤小

kafka高效之一 檔案系統

kafka關鍵特 可伸縮架構 高吞吐量 consumer自動負載均衡 支援集群多副本而本 部落格是乙個kafka檔案系統深入過程 儲存結構 目的 提高磁碟利用率和訊息處理效能。1.在kafka檔案系統中,同乙個topic下有多個不同partition,每個partition建立乙個目錄。即 topi...

Linux學習筆記 一 檔案系統

對於每乙個 linux 學習者來說,了解 linux 檔案系統的結構是十分有必要的 因為在 linux 中一切皆檔案,只有深入了解 linux 檔案系統,才會對 linux 有更深刻的認識 linux 檔案系統採用樹狀結構,檔案目錄的命名規範和存放標準遵循 filesystem hierarchy ...

字元流之一(檔案加密)

題目 準備乙個文字檔案 非二進位制 其中包含ascii碼的字元和中文字元。設計乙個方法 public static void encodefile file encodingfile,file encodedfile 在這個方法中把encodingfile的內容進行加密,然後儲存到encodedfi...