Kafka群集體系結構


有關Kafka群集體系結構,請看下面的結構圖。 它顯示了Kafka的叢集圖。

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

  • Broker - Kafka叢集通常由多個代理組成,以保持負載平衡。 Kafka經紀人是無狀態的,所以他們使用ZooKeeper維護他們的叢集狀態。 一個Kafka代理範例可以處理每秒數十萬次的讀寫操作,每個Broker都可以處理TB訊息,而不會影響效能。 Kafka經紀人的領導人選舉可以由ZooKeeper完成。

  • ZooKeeper - ZooKeeper用於管理和協調Kafka經紀人。 ZooKeeper服務主要用於通知生產者和消費者關於Kafka系統中任何新經紀人的存在或Kafka系統中經紀人的失敗。 根據Zookeeper收到的有關經紀人存在或失敗的通知,生產者和消費者就會做出決定,並開始與其他經紀人協調他們的任務。

  • Producers - 生產者將資料推播給經紀人。 新代理啟動後,所有生產者都會搜尋它並自動向該新代理傳送訊息。 Kafka生產者不會等待經紀人的確認,並且可以像經紀人能夠處理的那樣快地傳送訊息。

  • Consumers - 由於Kafka代理是無狀態的,這意味著消費者必須通過使用分割區偏移量來維護消耗了多少訊息。 如果消費者確認特定的訊息偏移量,則意味著消費者已經消費了所有先前的訊息。 消費者向代理發出一個非同步拉取請求,以準備消耗位元組緩衝區。 消費者可以簡單地通過提供偏移值來倒回或跳到分割區中的任何點。 消費者補償值由ZooKeeper通知。