Kafka入门-消费者与消费者组

引言:与生产者对应的消费者,消费者通过订阅主题,并从订阅的主题中拉取消息,这是一个再正常不过的流程,但在 Kafka 中多了一层消费者组的概念。

消费者(Consumer)负责订阅 Kafka 中的主题(Topic),并从订阅的主题处获取消息。每个消费者都对应一个消费者组(Consumer Group)。在 Kafka 中消息被发布到主题后,这条消息只会被订阅该主题的消费者组的一个消费者消费,该消费者组中的其他消费者无法消费到它。

一个消费者组可以包含多个消费者,对于主题中的消息同一个消费者组的每个消费者消费一部分。也就是说,所有的消费者消费的消息合在一起才是一个主题的完整消息。这种消费者和消费者组的设计可以让整体的消费能力具有横向伸缩性,比如在主题消息量非常大的情况下,单个消费者处理该主题会非常吃力,可以增加更多的消费者,让它们分担负载,每个消费者只处理部分消息,这样就可以提高整体的消费能力。

对于多个消费者组订阅同一个主题,每个消费者组之间是互不影响的。如有消费者组A和消费者组B,同时订阅了一个主题TopicA,在 Kafka 中消费者组A会获取到 TopicA 中的所有消息,消费者B也会获取到 TopicA 的所有消息。由此可以知道每个消费者组是相互独立的,消费者组之间不会互相影响。

Kafka 是同时支持点对点模式的和发布/订阅模式两种模式,这些都是通过消费者和消费者组来实现的:

  • 如果所有的消费者都在同一个消费者组,那么每个消息只会被一个消费者处理,这就相当于点对点模式的应用
  • 如果所有的消费者不再同一个消费者组,那么所有的消息都会被广播给所有的消费者,这就相当于发布/订阅模式

消费者组是一个逻辑上的概念,它将属于它的消费者归为一类,每个消费者只属于一个消费组。每个消费者组都会有一个固定的名称,消费者在进行消费之前需要指定其所属消费者组的名称,这个通过消费者客户端参数 group.id 来配置。


本篇文章由一文多发平台ArtiPub自动发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值