首页 新闻 会员 周边

用kafka-consumers.sh查看某个topic消费和订阅,只看到一个消费者(实际有两个)想到

0
[已解决问题] 解决于 2026-06-23 20:01

Kafka 的消费者组里面有多个消费者,​某个 topic 订阅之后订阅,​那是只只显示什么?​只显示一个?​还是只显示其中一个?​还是同时消费者组里面所有消费者都都显示订阅?​

*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1834
提问于:2026-06-23 19:49
< >
分享
最佳答案
0

 

在 Kafka 中,当一个消费者组(Consumer Group)订阅了某个 Topic 后,消费者组里面的所有消费者都会显示(参与)订阅该 Topic,但它们对消息的消费方式是基于“分区(Partition)”进行负载均衡的。

具体机制如下:
1. 组级别订阅:订阅操作是在消费者组级别进行的。只要属于同一个 group.id ,组内的所有消费者实例都会被视为订阅了该 Topic。


2. 分区级别分配:Kafka 会将该 Topic 下的所有分区(Partition)平均分配给组内的各个消费者。
3. 消费铁律:同一个消费者组内,一个分区只能被组内的一个消费者消费,绝不允许组内的多个消费者同时消费同一个分区。

举个例子:
假设 Topic 有 4 个分区,你的消费者组里有 3 个消费者:
● 这 3 个消费者都显示订阅了该 Topic。
● Kafka 会把 4 个分区分配给这 3 个消费者(例如:消费者 A 分 2 个分区,消费者 B 分 1 个,消费者 C 分 1 个)。
● 如果组内有 5 个消费者(大于分区数),那么多出来的 1 个消费者虽然也显示订阅了该 Topic,但会被闲置(空跑),分配不到任何分区。

 

我的问题,实际两个属于不同消费者组,与此问题不相关

*Tesla* | 小虾三级 |园豆:1834 | 2026-06-23 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册