Kafka Console Client 的 Consumer Group

以往使用 kafka-console-consumer.sh 消费 Kafka 消息时并没有太在意过 Consumer Group,在命令行中也不会使用 --group 参数,本文针对 Kafka Console Client 命令行中的 Consumer Group 进行一次统一说明。

1. 如不设置 --group 参数会自动生成一个 Consumer Group ID

通常我们在使用 kafka-console-consumer.sh 的时候是不会设置 --group 参数的,从使用体验上也看不出有什么差异,原因在于 Kafka Console Client 会自动为当前这次请求自动创建一个 GroupID,一般会命名为 console-consumer-xxxx,每执行一次 kafka-console-consumer.sh 就生成一个新的 GroupID,以下是测试过程:

从上面的测试可以看出:每执行一次 kafka-console-consumer.sh 都会自动创建一个新的 Consumer Group,命令行启动的 Consumer 就在这个 Group 中,且也只有这一个 Consumer。

2. 设置 --group 参数,多个 kafka-console-consumer.sh 加入同一 Consumer Group

我们的测试用 topic 有3个 Partition, 我们打开三个 Console,分别执行一遍:

bash 复制代码
kafka-console-consumer.sh --bootstrap-server $KAFKA_BOOTSTRAP_SERVERS --topic 'osci.mysql-server-3.inventory.orders' --group 'app-1'

然后向 Kafka 中插入三条数据(avro 格式,二进制数据),得到如下输出:

可以看到:三个 kafka-console-consumer.sh 在同一个 Group 下工作,各自对接一个 Partition,所以写入的三条消息是在三个 Console 中输出出来的。这就是 Consumer Group 的标准行为。

相关推荐
code在飞2 小时前
windows 部署 Kafka3.x KRaft 模式 不依赖 ZooKeeper
windows·分布式·zookeeper·kafka
不会飞的鲨鱼4 小时前
Windows系统下使用Kafka和Zookeeper,Python运行kafka(二)
windows·zookeeper·kafka
Lucas64914 小时前
kafka的安装及简单使用
分布式·kafka
Cxzzzzzzzzzz18 小时前
Kafka的基本概念和Dokcer中部署Kafka
分布式·kafka
搞不懂语言的程序员18 小时前
Kafka Controller的作用是什么?故障时如何恢复? (管理分区和副本状态;通过ZooKeeper选举新Controller)
分布式·zookeeper·kafka
predisw1 天前
Kafka集群加入新Broker节点会发生什么
分布式·kafka
Timmer丿2 天前
kafka学习笔记(四、生产者、消费者(客户端)深入研究(三)——事务详解及代码实例)
java·笔记·学习·kafka
XQ丶YTY2 天前
记录一下学习kafka的使用以及思路
分布式·学习·kafka
言小乔.2 天前
202536 | KafKa生产者分区写入策略+消费者分区分配策略
分布式·kafka·linq
predisw2 天前
kafka leader traffic 重平衡
分布式·kafka