學習Apache Kafka概念

Apache Kafka 是許多公司用於許多批次工作負載的分散式串流平台,以及即時資料整合和資料串流使用案例。

Kafka 架構圖。
該圖顯示了Kafka架構。

下列清單定義部分 Apache Kafka 概念:

分配管理系統

Apache Kafka 是分散式傳訊系統。 Kafka 叢集由一組分配管理系統組成。 一個叢集最少有三個分配管理系統。

分配管理系統圖表。
該圖顯示了具有三個代理的範例集群。

訊息

訊息是 Kafka 中的資料單位。 每一則訊息都表示為一筆記錄,其包含兩個部分:索引鍵及值。 索引鍵通常用於有關訊息的資料,值則是訊息內文。 Kafka 交換使用術語記錄及訊息。

主題及分割區

每一個主題都是訊息的具名串流。 主題由一個以上分割區組成。 分區上的消息按稱為偏移量的數字排序。 透過跨代理程式分佈多個分區,主題的可擴展性得到提高。

如果某個主題具有多個分割區,它容許藉由在整個叢集中配送分割區來同時提供資料以增加傳輸量。 分割區數目也會影響消費者的工作負載平衡。

如需相關資訊,請參閱分割區領導權

主題和分區圖。
該圖顯示了一個具有三個分區的主題,這些分區分佈在三個代理中。

抄寫

為了提高可用性,每一個主題都可以抄寫至多個分配管理系統。 對於每一個分割區,其中一個分配管理系統是主導者,而其他分配管理系統則為追隨者。

抄寫的運作方式就是 Follower 反覆地從 Leader 中提取訊息。

抄寫圖。
該圖顯示了跨三個代理複製的主題分區。

保持同步抄本

與分割區主導者保持一致的追隨者抄本即為保持同步抄本。 任何具有保持同步抄本的 Follower 都可以變成 Leader,而不會遺失任何訊息。

如果分割區 Leader 故障,則會從多個 Follower 中選擇另一個 Leader。 所有抄本通常都要同步。 副本在故障後追趕時暫時不同步是可以接受的。

「同步抄本」圖表。
該圖顯示了跨三個代理複製並在所有副本之間保持同步的主題分區。

生產者

生產者是將訊息發佈至一或多個主題的用戶端應用程式。 生產者可以發佈至一個以上的主題,也可以選擇性地選擇用來儲存資料的分割區。

您也可以透過選擇生產者對其發布的消息收到的確認等級來配置生產者以優先考慮速度或可靠性。

如需相關資訊,請參閱產生訊息

生產者圖。
該圖顯示了生產者跨三個代理程式向一個主題發布訊息。

消耗者

消費者是從一或多個主題讀取訊息並處理它們的用戶端應用程式。 消費者的現行位置與分割區上最新訊息之間的差異稱為偏移遲滯。

如果遲滯隨時間而增加,則表示消費者無法保持一致。 從短期來看,這不是問題,但如果超過保留期限,最終消費者可能會錯過訊息。

如需相關資訊,請參閱取用訊息

消費者圖表。
該圖顯示了一個消費者跨三個代理處理來自一個主題的訊息。

消耗者群組

消費者群組包含一或多個共同處理主題訊息的消費者。 單一分割區中的訊息是由每一個群組中的一個消費者處理。

在任何時候,每一個分割區僅指派給群組中的一個消費者。 此分配可確保每個分割區上的訊息依序處理。

如果一個群組中存在的分區數量多於消費者,則某些消費者擁有多個分區。 如果存在的消費者多於分區,則某些消費者沒有分區。

消費者群組圖。
該圖顯示了一個消費者跨三個代理處理來自一個主題的訊息。

其他資訊

如需相關資訊,請參閱 Apache Kafka 說明文件