1. 程式人生 > >(2)Kafka架構分析

(2)Kafka架構分析

1、Kafka架構

2、Topic & Partition

2.1、Topic:

  • 邏輯概念,同一個Topic的訊息可分佈在一個或多個節點(Broker)上
  • 一個Topic包含一個或者多個Partition
  • 每條訊息都屬於且僅屬於一個Topic
  • Producer釋出資料時,必須指定將該訊息釋出到哪一個Topic
  • Consumer訂閱訊息時,也必須指定訂閱哪個Topic的訊息

2.2、Partition

  • 物理概念,一個Partition只分佈於一個Broker上(不考慮備份)
  • 一個Partition物理上對應一個資料夾
  • 一個Partition包含多個Segment(Segment對使用者透明)
  •  一個Segment對應一個檔案
  • Segment由一個個不可變記錄組成
  • 記錄只會被append到Segment中,不會被單獨刪除或者修改
  • 清除過期日誌時,直接刪除一個或多個Segment

3、Partitioner

3.1、Sample Hash Partitioner

3.2、Sample Round Robin Partitioner

4、Sync Producer vs. Async Producer

4.1、Sync Producer

  • 低延遲
  • 低吞吐率
  • 無資料丟失

4.2、Aync Producer

  • 高延遲
  • 高吞吐率
  • 可能會有資料丟失