Apache Kafka - 基礎知識



在深入研究 Kafka 之前,您必須瞭解主要術語,例如主題、代理、生產者和消費者。下圖說明了主要術語,表格詳細描述了圖表的組成部分。

Fundamentals

在上圖中,一個主題被配置為三個分割槽。分割槽 1 有兩個偏移量因子 0 和 1。分割槽 2 有四個偏移量因子 0、1、2 和 3。分割槽 3 有一個偏移量因子 0。副本的 ID 與託管它的伺服器的 ID 相同。

假設主題的複製因子設定為 3,則 Kafka 將建立每個分割槽的 3 個相同副本並將它們放置在叢集中,以使其可用於所有操作。為了平衡叢集中的負載,每個代理儲存一個或多個這些分割槽。多個生產者和消費者可以同時釋出和檢索訊息。

序號 元件和描述
1

主題 (Topics)

屬於特定類別的一系列訊息稱為主題。資料儲存在主題中。

主題被分成分割槽。對於每個主題,Kafka 保持至少一個分割槽。每個這樣的分割槽都包含按不可變順序排列的訊息。分割槽實現為一組大小相等的段檔案。

2

分割槽 (Partition)

主題可能有多個分割槽,因此它可以處理任意數量的資料。

3

分割槽偏移量 (Partition offset)

每個分割槽訊息都有一個唯一的序列 ID,稱為偏移量

4

分割槽的副本 (Replicas of partition)

副本不過是分割槽的備份。副本從不讀取或寫入資料。它們用於防止資料丟失。

5

代理 (Brokers)

  • 代理是負責維護已釋出資料的簡單系統。每個代理可能每個主題有零個或多個分割槽。假設一個主題中有 N 個分割槽和 N 個代理,則每個代理將擁有一個分割槽。

  • 假設一個主題中有 N 個分割槽,並且代理數量超過 N (n + m),則前 N 個代理將各有一個分割槽,接下來的 M 個代理將不為此特定主題擁有任何分割槽。

  • 假設一個主題中有 N 個分割槽,而代理數量少於 N (n-m),則每個代理將共享一個或多個分割槽。由於代理之間負載分配不均,因此不推薦此方案。

6

Kafka 叢集 (Kafka Cluster)

擁有多個代理的 Kafka 稱為 Kafka 叢集。Kafka 叢集可以在不停機的情況下擴充套件。這些叢集用於管理訊息資料的永續性和複製。

7

生產者 (Producers)

生產者是向一個或多個 Kafka 主題釋出訊息的釋出者。生產者將資料傳送到 Kafka 代理。每次生產者向代理釋出訊息時,代理都會簡單地將訊息追加到最後一個段檔案中。實際上,訊息將被追加到分割槽中。生產者還可以將訊息傳送到他們選擇的特定分割槽。

8

消費者 (Consumers)

消費者從代理讀取資料。消費者訂閱一個或多個主題,並透過從代理提取資料來使用已釋出的訊息。

9

領導者 (Leader)

領導者是負責給定分割槽的所有讀寫操作的節點。每個分割槽都有一個充當領導者的伺服器。

10

跟隨者 (Follower)

遵循領導者指令的節點稱為跟隨者。如果領導者失敗,則其中一個跟隨者將自動成為新的領導者。跟隨者充當普通消費者,拉取訊息並更新其自身的資料儲存。

廣告
© . All rights reserved.