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 的标准行为。

相关推荐
阿里云云原生1 天前
海尔智家 x 阿里云 Kafka 实践:轻松支撑百亿级消息,稳定性与效率双提升
kafka
s1mple“”1 天前
大厂Java面试实录:从Spring Boot到AI技术的医疗健康场景深度解析
spring boot·redis·微服务·kafka·向量数据库·java面试·ai技术
s1mple“”1 天前
大厂Java面试实录:从Spring Boot到AI技术的面试场景深度解析
spring boot·redis·微服务·kafka·java面试·rag·ai技术
s1mple“”1 天前
大厂Java面试实录:从Spring Boot到AI技术的在线教育场景深度解析
spring boot·redis·微服务·kafka·向量数据库·java面试·ai技术
枫叶v.1 天前
Kafka 怎么保证消息的顺序性
分布式·kafka
yitian_hm1 天前
深入理解 Kafka Producer 核心源码:消息发送全链路解析
分布式·kafka·linq
枫叶V2 天前
Kafka 怎么保证消息的顺序性
kafka
rafael(一只小鱼)2 天前
如何解决报错wmic不是内部或外部命令--kafka场景下
windows·分布式·kafka
AutoMQ2 天前
360 如何用 AutoMQ 解决千亿级 Kafka 冷读难题
kafka·消息队列·云计算
半桶水专家2 天前
Kafka Topic 管理命令 kafka-topics.sh 详解
分布式·kafka