什麼是消費者群體

從 Kafka 0.9 開始,新的高階 KafkaConsumer 客戶端可用 。它利用新的內建 Kafka 協議 ,允許在所謂的消費者群體中組合多個消費者。消費者組可以被描述為訂閱一組主題的單個邏輯消費者。所有主題的部分都是針對群組內的實際消費者的,這樣每個人都可以分配給一個消費者(一個消費者可以分配多個分割槽)。屬於同一組的不同消費者可以以分散式方式在不同主機上執行。

消費者群體通過他們的 group.id 識別。要建立使用者組的特定客戶端例項成員,通過客戶端的配置將組 group.id 分配給此客戶端就足夠了:

Properties props = new Properties();
props.put("group.id", "groupName");
// ...some more properties required
new KafkaConsumer<K, V>(config);

因此,連線到同一 Kafka 叢集並使用相同的 group.id 的所有消費者構成消費者組。消費者可以隨時離開團體,新消費者可以隨時加入團體。對於這兩種情況,都會觸發所謂的重新平衡,並與消費者組重新分配分割槽,以確保每個分割槽都由組內的一個特殊消費者處理。

請注意,即使是單個 KafkaConsumer 也會形成一個消費者群體,其自身也是單一成員。