深入Kafka

集羣成員關係

在這裏插入圖片描述

控制器

  • 控制器的作用: 除具有一般broker的功能之外,還負責分區首領的選舉
  • 控制器的選舉: 各broker向ZK中/controller註冊臨時節點
  • 分區首領的選舉: broker加入時,同步副本;broker離開時,選舉新的分區首領

分區複製

  • 首領副本 :每個分區都有一個首領副本。首領副本負責處理理所有生產者和消費者的請求
  • 跟隨者副本:首領以外的副本都是跟隨者副本。跟隨者副本不處理理來自客戶端端請求,它們唯一的任務就是從首領那里負責消息,保持與首領一致的狀態。
  • AR:Assigned Replicas,所有副本
  • ISR:In-Sync Replicas,已同步的副本
  • OSR:Out-Of-Sync Replicas,掉隊的副本
  • AR = ISR + OSR

物理存儲

  • Kafka會將數據持久化到文件,文件目錄以分區來組織,每個分區下有多個文件,每個文件稱作一個片段,每個片段包含1G或一週的數據,以較小的值爲準。
  • 保留策略:數據被刪除之前可以保留多長時間,或者清理數據之前可以保留的數據量大小。
  • 3類文件:數據文件、索引文件、時間索引文件。
    在這裏插入圖片描述

基本概念

在這裏插入圖片描述

刷盤

在這裏插入圖片描述

文件滾動

在這裏插入圖片描述

  • 默認情況下,每個片段包含1G或7天的數據,以較小的值爲準;如果達到片段上限,就關閉當前文件,並打開一個新文件

數據清除策略

  • log.cleanup.policy:⽇志清除策略(delete/compact)
  • log.retention.bytes:⽇志保留量
  • log.retention.hours:⽇志保留時間
    在這裏插入圖片描述

索引

  • 3步定位message
    1)⼆二分查找index file
    2)通過index file定位物理理地址
    3)順序掃描 segment file
  • 稀疏索引 vs. 稠密索引
    在這裏插入圖片描述

消息格式

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章