Kafka羣集體系結構
有關Kafka羣集體系結構,請看下面的結構圖。 它顯示了Kafka的集羣圖。
下表描述了上圖中顯示的每個組件。
Broker - Kafka集羣通常由多個代理組成,以保持負載平衡。 Kafka經紀人是無狀態的,所以他們使用ZooKeeper維護他們的集羣狀態。 一個Kafka代理實例可以處理每秒數十萬次的讀寫操作,每個Broker都可以處理TB消息,而不會影響性能。 Kafka經紀人的領導人選舉可以由ZooKeeper完成。
ZooKeeper - ZooKeeper用於管理和協調Kafka經紀人。 ZooKeeper服務主要用於通知生產者和消費者關於Kafka系統中任何新經紀人的存在或Kafka系統中經紀人的失敗。 根據Zookeeper收到的有關經紀人存在或失敗的通知,生產者和消費者就會做出決定,並開始與其他經紀人協調他們的任務。
Producers - 生產者將數據推送給經紀人。 新代理啓動後,所有生產者都會搜索它並自動向該新代理髮送消息。 Kafka生產者不會等待經紀人的確認,並且可以像經紀人能夠處理的那樣快地發送消息。
Consumers - 由於Kafka代理是無狀態的,這意味着消費者必須通過使用分區偏移量來維護消耗了多少消息。 如果消費者確認特定的消息偏移量,則意味着消費者已經消費了所有先前的消息。 消費者向代理髮出一個異步拉取請求,以準備消耗字節緩衝區。 消費者可以簡單地通過提供偏移值來倒回或跳到分區中的任何點。 消費者補償值由ZooKeeper通知。