Kafka工作流程及檔案儲存機制

2021-10-12 10:39:39 字數 1391 閱讀 5633

一、基礎架構

1、kafka中訊息是以topic進行分類的,生產者生產訊息,消費者消費訊息,都是面向topic的。

2、topic是邏輯上的概念,而partition是物理上的概念

3、每個partition對應於乙個log檔案,該log檔案中儲存的就是producer生產的資料

(log檔案的儲存位置是根據partition的leader副本在哪個broker上)

4、producer生產的資料會被不斷追加到該log檔案末端,且每條資料都有自己的offset(偏移量)。

以便出錯恢復時,從上次的位置繼續消費。

二、檔案儲存架構

1、為防止log檔案過大導致資料定位效率低下,kafka採取了分片和索引機制,

將每個partition分為多個segment。

2、segment的檔案生命週期由服務端配置引數(log.segment.bytes,log.roll.等引數)

決定。3、每個segment對應兩個檔案——「.index」檔案(segment索引檔案)

和「.log」檔案(segment資料檔案)。

4、命令規則:

partition全域性的第乙個segment從0開始,

後續每個segment檔名為上乙個segment檔案最後一條訊息的offset值(偏移量)

數值大小為64位,20位數字字元長度,沒有數字用0填充。

如果乙個消費者維護的offset是3,那麼它要繼續讀取資料,步驟如下:

1、先找到對應的「.index」檔案(segment索引檔案),index裡面存的是kv值,查詢key為3的值,

這個值是對應「.log」檔案(segment資料檔案)中message的物理偏移位址。

2、然後找到對應的「.log」檔案(segment資料檔案),按照物理偏移位址找到資料。

所以這樣分段儲存資料,首先就可以確定分段檔案縮小查詢範圍,然後再根據index檔案

中的offset查詢log檔案中的真實物理偏移位址,就可以快速的找到資料進行消費。

所以kafka資料的查詢速率與資料量是沒有關係的。

Kafka工作流程及檔案儲存機制

kafka 中訊息是以 topic 進行分類的,生產者生產訊息,消費者消費訊息,都是面向 topic的。topic 是邏輯上的概念,而 partition 是物理上的概念,每個 partition 對應於乙個 log 文 件,該 log 檔案中儲存的就是 producer 生產的資料。produce...

Kafka工作流程以及檔案儲存機制分析

kafka中訊息是以topic進行分類的,生產者生產訊息,消費者消費訊息,都是面向topic的。由於生產者生產的訊息會不斷追加到log檔案末尾,為防止log檔案過大導致資料定位效率低下,kafka採取了分片和索引機制,將每個partition分為多個segment。每個segment對應兩個檔案 i...

Kafka學習筆記(四)工作流程

1.生產者定期向主題傳送訊息。2.kafka 儲存為該特定主題配置的分割槽中的所有訊息。它確保訊息在分割槽之間平等共享。如果生產者傳送兩個訊息並且有兩個分割槽,kafka將在第一分區中儲存乙個訊息,在第二分割槽中儲存第二訊息。3.消費者訂閱特定主題。4.一旦消費者訂閱主題,kafka將向消費者提供主...