Kafka 架構
Apache Kafka 入門
Mike Metzger
Data Engineering Consultant
Kafka 元件
Kafka 伺服器
一個以上電腦組成的叢集
儲存資料
管理通訊
也可整合其他系統(資料庫、日誌等)
Kafka 用戶端
透過 Kafka consumer 讀取
透過 Kafka producer 寫入
依需求處理資料
Kafka 伺服器
儲存層,也稱 Kafka Broker
producer 寫入的資料以 topics 儲存與組織
topics 會被分割為 partitions(分片)
訊息/事件依 event id 放入指定分區
讀取順序與寫入順序相同
1
Image sourced from https://kafka.apache.org/intro
分區與複寫
Kafka 具備容錯能力
若一台系統離線,其他系統仍可提供所需資料
可承受的最大失效數量 = 複本因子 - 1
複本因子的上限 = 伺服器數量
透過分區複本來實現資料複寫
範例
含 3 個 brokers 的 Kafka 叢集
定義了 3 個 topics
2x 複本 ⇒ 可容忍 1 台系統失效
Broker 1 持有 Topic 1 與 Topic 2 的複本
Broker 2 持有 Topic 2 與 Topic 3 的複本
Broker 3 持有 Topic 1 與 Topic 3 的複本
每個 topic 在叢集內分散於 2 個 brokers
1 次故障的範例
Broker 2 故障
複本因子為 2x
2 - 1 ⇒ 可承受 1 台失效
每個 topic 在叢集中仍至少有一個複本
2 次故障的範例
有 2 個 brokers 故障
複本因子為 2x
超出可支援的失效數(1 台)
Topic 2 在叢集中已無可用複本
Topic 1 與 Topic 3 仍可用,因此非全面故障
一起來練習吧!
Apache Kafka 入門
Preparing Video For Download...