kafka 數據存儲結構+原理+基本操作命令


數據存儲結構:

Kafka中的Message是以topic為基本單位組織的,不同的topic之間是相互獨立的。每個topic又可以分成幾個不同的partition(每個topic有幾個partition是在創建topic時指定的),每個partition存儲一部分Message。


partition是以文件的形式存儲在文件系統中,比如,創建了一個名為page_visits的topic,其有5個partition,那么在Kafka的數據目錄中(由配置文件中的log.dirs指定的)中就有這樣5個目錄: page_visits-0, page_visits-1,page_visits-2,page_visits-3,page_visits-4,其命名規則為<topic_name>-<partition_id>,里面存儲的分別就是這5個partition的數據。

Partition中的每條Message由offset來表示它在這個partition中的偏移量,這個offset不是該Message在partition數據文件中的實際存儲位置,而是邏輯上一個值,它唯一確定了partition中的一條Message。類似於下面的一個圖片,消息存儲在每個log文件中,index對應的是消息的索引信息,另外,為了讓消息消費的時候更快,又將文件分成很多段。

 

數據消費查詢:

   我們要查詢 offset 為7的消息,那kafka就會快速定位到這個index文件,得知offset 為7的消息在6,9807后面,這時候就可以通過9807快速定位到數據文件,然后從位置為9807的那個地方開始順序掃描直到找到offset為7的那條Message。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM