Kafka之消费者组(Consumer Group)命令

要点:

1、一个消费者只能属于一个消费者组
2、消费者组订阅的topic只能被其中的一个消费者消费
3、不同消费者组中的消费者可以消费同一个topic
4、消费者组中的消费者实例个数不能超过分区的数量
假设分区数量设置为1,消费者实例设置为2,这个时候会发现只有1个消费者在消费消息,另一个消费者闲置。

消费者组命令:

创建分区数量为2的topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic topic-test

打开2个命令行窗口,执行同样的语句进行消息消费

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-test --group group-test

打开1个命令行窗口,进行消息发送

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-test

结果:消息被均匀的分配到2个消费者中消费

原理:Kafka能够为一个消费者池提供顺序保证和负载平衡,是通过将topic中的partition分配给消费者组中的消费者来实现的, 以便每个分区由消费组中的一个消费者消耗。通过这样,我们能够确保消费者是该分区的唯一读者,并按顺序消费数据。 众多分区保证了多个消费者实例间的负载均衡。所以消费者组中的消费者实例个数不能超过分区的数量。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍