kafka多个消费者消费一个topic_你真的了解 Kafka 消费者吗?

本文介绍了Kafka消费者的工作原理,包括消费者和消费组的概念,心跳机制确保消费者与Broker之间的连接,反序列化处理接收到的消息,消费者拦截器在消息消费前的处理,以及消费者如何通过位移管理跟踪消费进度。同时,文章讨论了再均衡协议及其触发条件,强调了避免重平衡对系统性能的影响。

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

文章内容输出来源:拉勾教育Java高薪训练营;

kafka 消费者是做什么的?既然生产者是往 broker 中topic 特定的 分区发送消息。那么消费者就是从这些分区中读取消息了。那具体的流程又是怎么样的呢?有又哪些特性呢?接下来我们一起揭晓。

消费者和消费组

我们先来说说什么是消费者和消费组。

消费者是从订阅的主题中消费消息,一群消费者组成的一个消费组。多个从同一个主题消费的消费者可以加入到一个消费组中,消费组中的消费者共享group_id。也就是说消费组中的所有消费者的 group_id 是一样的

注意消费组均衡地给消费者分配分区,每个分区只由消费组中一个消费者消费。这样就可以避免消息重复消费了。

2a12ec9ff2fe341e521b76ad75283f38.png

如果消费组中消费者数量小于topic 中的分区数量,就说明有不同的分区指向了同一个消费者。

如果消费组中消费者的数量等于topic 中的分区数量,说明每个分区指定一个消费者。

如果消费组中国消费者的数量大于 topic 中的分区数量,说明消费组中会有空余的消费者。

这样的机制有什么好处?

可以分方便的横向扩展消费者。比如说,如果发现主题中分区很多,消费者组消费不过来,出现了消息的堆积。这个时候就可以拓展消费组,增加消费者,从而消除消息堆积的问题。

心跳机制

既然每个分区都绑定一个消费者,消费者和topic 之间就得检测心跳了。Kafka 的心跳是 Kafka Consumer 和 Broker 之间的健康检查,只有当 Broker Coordinator 正常时,Consumer 才会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值