(2)Kafka架構分析
阿新 • • 發佈:2018-12-11
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
- 高延遲
- 高吞吐率
- 可能會有資料丟失