什么是消费者群体

从 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 也会形成一个消费者群体,其自身也是单一成员。