消費者是從Kafka集群的某個分區中消費數據的人。它知道從哪個代理讀取或使用特定主題的數據。
另一方麵,消費者組由一個以上的消費者組成,每個消費者從指定的分區讀取或使用數據。如果消費者的數量將超過分區的數量,新的消費者將進入不活動狀態,直到現有客戶取消訂閱。
考慮這個有兩個消費者的場景—
讓我們假設有兩組消費者——消費者組A和消費者組b。如果來自消費者組A的消費者正在從不同的分區讀取數據,這意味著他們在Topic - T下並行讀取數據,因此將保持活動狀態。
現在,如果組B的一個使用者從Topic - T下的Partition - 1讀取數據,那麼該使用者也會處於活動狀態,因為它屬於組B。
考慮另一個有三個消費者的場景——
有三個使用者,有兩個可用分區。兩個消費者——消費者A和消費者B處於活動狀態,消費者A從分區0讀取數據,而消費者B從分區1讀取數據。除非消費者A或消費者B離開,否則消費者C將保持不活動狀態。
現在讓我們看看如何通過Java客戶機發送和接收消息的示例。
下麵介紹如何創建具有兩個消費者的示例組—
”> > java - cp /道路/ /卡夫卡/ kafka_2.11-0.9.0.0 / libs / *”:。
消費組
> > java - cp“/ home /巴拉/ Workspace /卡夫卡/ kafka_2.11-0.9.0.0 / libs / *”:。
消費組
現在使用Producer CLI -發送消息
測試消費群體01
測試消費群體02
它將給出第一個和第二個過程的輸出分別為-
訂閱主題Hello-kafka
offset = 3, key = null, value =測試消費組01
和
訂閱主題Hello-kafka
offset = 3, key = null, value =測試消費組02