Apache Kafka - 叢集架構



請檢視以下插圖。它顯示了 Kafka 的叢集圖。

Cluster Architecture

下表描述了上圖中顯示的每個元件。

序號 元件及描述
1

代理(Broker)

Kafka 叢集通常包含多個代理來維護負載均衡。Kafka 代理是無狀態的,因此它們使用 ZooKeeper 來維護其叢集狀態。一個 Kafka 代理例項每秒可以處理數十萬次讀寫操作,並且每個代理可以處理 TB 級別的資料而不會影響效能。Kafka 代理領導者選舉可以透過 ZooKeeper 完成。

2

ZooKeeper

ZooKeeper 用於管理和協調 Kafka 代理。ZooKeeper 服務主要用於通知生產者和消費者 Kafka 系統中是否有任何新的代理出現或代理發生故障。根據 Zookeeper 收到的關於代理存在或故障的通知,生產者和消費者做出決策並開始與其他代理協調其任務。

3

生產者

生產者將資料推送到代理。當新的代理啟動時,所有生產者都會搜尋它並自動向該新代理傳送訊息。Kafka 生產者不會等待代理的確認,並儘可能快地傳送訊息,直到代理能夠處理為止。

4

消費者

由於 Kafka 代理是無狀態的,這意味著消費者必須透過使用分割槽偏移量來維護已消費了多少訊息。如果消費者確認某個特定訊息偏移量,則表示消費者已消費所有先前訊息。消費者向代理發出非同步拉取請求,以便準備一個位元組緩衝區以供消費。消費者可以透過提供偏移量值來回溯或跳過分割槽中的任何位置。消費者偏移量值由 ZooKeeper 通知。

廣告