kafka多个消费者消费一个topic_Kafka 为什么使用消费者组?

本文介绍了Kafka消费者组的特点和优势,包括确保分区互斥消费、性能提升、灵活的消费模式(广播与单播)以及故障容灾能力。消费者组在成员变化时执行再平衡,保证服务连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 消费者组的特点

effe7f4053ee2903a3436fa217b33cac.png

这是 kafka 集群的典型部署模式。

消费组保证了:

一个分区只可以被消费组中的一个消费者所消费

一个消费组中的一个消费者可以消费多个分区,例如 C1 消费了 P0, P3 。

一个消费组中的不同消费者消费的分区一定不会重复,例如:

C1 -> P0、P3C2 -> P1、P2

所有消费者一起消费所有的分区,例如 C1 和 C2 共同完成了对 P0、P1、P2、P3 的消费。

在不同消费组中,每个消费组都会消费所有的分区,例如,消费组A、消费组B 都消费了 P0、P1、P2、P3 。

同一个消费组里面的消费者对分区是互斥的,例如 C1 和 C2 不会消费同一个分区;而分区在不同的消费组间是共享的。

2. 消费者组的优势

2.1 高性能

7ec7f82c6afb2d5b0b6c019e8181dafe.png

假设一个主题有10个分区,如果没有消费者组,只有一个消费者对这10个分区消费,他的压力肯定大。

f3dfb3cd5bcac68b5724e4e2902fcb7e.png

如果有了消费者组,组内的成员就可以分担这10个分区的压力,提高消费性能。

2.2 消费模式灵活

假设有4个消费者订阅一个主题,不同的组合方式就可以形成不同的消费模式。

7ee43af40495b1222a0b3d0fa72941e4.png

使用4个消费者组,每组里放一个消费者,利用分区在消费者组间共享的特性,就实现了 广播(发布订阅)模式

0aed77becd6f8bb84a3bae89116c3850.png

只使用一个消费者组,把4个消费者都放在一起,利用分区在组内成员间互斥的特性,就实现了单播(队列)模式

2.3 故障容灾

如果只有一个消费者,出现故障后就比较麻烦了,但有了消费者组之后就方便多了。

消费组会对其成员进行管理,在有消费者加入或者退出后,消费者成员列表发生变化,消费组就会执行再平衡的操作。

例如一个消费者宕机后,之前分配给他的分区会重新分配给其他的消费者,实现消费者的故障容错。

1b01811e7be876c70b00f4ca4f866cd2.png

3. 小结

消费者组的好处:

  • 消费效率更高
  • 消费模式灵活
  • 便于故障容灾
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值