Kafka的儲存模型

2021-10-24 01:15:36 字數 700 閱讀 8228

有部分內容**這篇講的很詳細 易懂

kafka乙個topic可以有多個partition,多個執行緒,每個執行緒負責乙個partition進行讀寫

每個paratition可以有多個logsegment,每個logsegment檔案包括乙個日誌資料檔案和兩個索引檔案(偏移量索引檔案和訊息時間戳索引檔案)。

以上紅字部分就是他的儲存模型

其中,每個logsegment中的日誌資料檔案大小均相等(該日誌資料檔案的大小可以通過在kafka broker的config/server.properties配置檔案的中的「log.segment.bytes」進行設定,預設為1g大小(1073741824位元組),在順序寫入訊息時如果超出該設定的閾值,將會建立一組新的日誌資料和索引檔案

kafka的索引檔案是採用稀疏索引的方式,每隔一定的位元組數建立了一條索引

所以在新增資料時,如果還沒有logsegment,就會建第乙個logsegment,然後把資料順序寫在該logsegment的日誌資料檔案裡,然後再把索引加到偏移量索引檔案裡去

偏移量索引檔案的每條索引由offset和position組成,每個索引條目可以唯一確定在各個分割槽資料檔案的一條訊息

在查詢資料時

先根據position定位到logsegment,再根據position和offset在logsegment找到日誌資料檔案中對應資料的位置

原理就是這樣

kafka的模型詮釋

kafka是目前市場上比較流行的訊息框架。本篇文章盡力去詮釋kafka模型背後的設計原理,從而更加深刻的理解kafka,在使用過程中盡可能少的入坑。三個角色 producer 生產者。負責傳送訊息到kafka集群 broker kafka集群。負責儲存訊息 consumer 消費者。負責消費kafk...

Kafka訊息模型

一 訊息傳遞模型 傳統的訊息佇列最少提供兩種訊息模型,一種p2p,一種pub sub,而kafka並沒有這麼做,巧妙的,它提供了乙個消費者組的概念,乙個訊息可以被多個消費者組消費,但是只能被乙個消費者組裡的乙個消費者消費,這樣當只有乙個消費者組時就等同與p2p模型,當存在多個消費者組時就是pub s...

kafka 事務模型

kafka 在 0.11.0.0 版本中新增了事務支援,同時增加了 精確一次 的傳送語義用於支援事務模型 exactly once,this is what people actually want,each message is delivered once and only once 簡單的解釋...