1、在磁碟的組織形式
從上圖可以看到segment的檔案組成:
2、segment
日誌檔案達到一定的條件的時候需要進行切分,其對應的索引檔案也會進行切分,日誌檔案滿足以下條件之一就會進行切分。
3、索引檔案
kafka中的索引檔案以稀疏索引的方式構造訊息的索引,它並不保證每個訊息在索引檔案中都有對應的索引項。每當寫入一定量 (broker引數 log.index.interval.bytes指定),預設為 4096 ,即 4kb 的訊息時,偏移量索引檔案和時間戳索引檔案分別增加乙個偏移量索引項和時間戳索引項。
4、日誌查詢
除segment刪除規則之外,kafka還提供另一種資料清洗策略,對於有相同key不同value值的message,只保留最新版本在kafka中。
用於儲存消費者offset的主題」__consumer_offsets」使用的就是這種策略
每個日誌目錄下,有名為」cleaner-offset-checkpoint」的檔案,根據該檔案可以將日誌檔案分成3部分:
log compaction使用時應注意每個訊息的key值不為null。
1、log compaction步驟:
2、日誌壓縮舉例:
1)、日誌清理
2)、壓縮合併:
kafka原理解析
kafka是大家比較常用的訊息中介軟體,本文主要介紹kafka基本元件及其相關原理 kafka通過offset保證訊息在分區內的順序,offset的順序性不跨分割槽 kafka0.10以後,使用乙個專門的topic consumer offset儲存offset consumer offset日誌留...
kafka工作原理解析
三 kafka設計解析 有兩個生產者,生產topic 不同的topic表示不同訊息的型別 每乙個topic中的partition都會有副本 replices 例如乙個topic1,有兩個partition,另乙個topic有乙個partition 乙個partition對應 每乙個partition...
nodejs之日誌管理
不管是什麼專案,日誌一直是乙個重要組成部分,它可以隨時供你檢視重要資料資訊,在nodejs中檢視實時日誌可以用pm2 logs檢視,如果使用者比較多怎麼辦了?如何將正常日誌和錯誤日誌分開?如何對每天的日誌歸檔?下面我們一起來看下。使用log4js建立日誌檔案,新建logs目錄,在目錄下新建chees...