Kafka Consumer工作流程

Kafka Consumer工作流程图

1、启动与加入组

  • 消费者启动后,会向 Kafka 集群中的某个 Broker 发送请求,请求加入特定消费者组。这个 Broker 中的消费者协调器(Consumer Coordinator)负责管理消费者组相关事宜。

2、组内分区分配(Rebalance)

  • 消费者协调器会对消费者组内的消费者进行分区分配。一个消费者组订阅某个 Topic 时,该 Topic 的每个分区只能由组内一个消费者消费 ,但一个消费者可消费多个分区数据 。比如图中TopicA的不同分区,会分配给组内不同消费者。当组内消费者数量变化,或 Topic 分区数量改变时,会触发 Rebalance,重新分配分区。

3、确定消费位置(获取 Offset)

  • 消费者从系统主题__consumer_offsets中获取自己上次提交的偏移量(Offset ),它标识着消费者在分区中上次消费到的位置。若首次消费或没有可查询的偏移量记录,可能从分区起始位置(最早消息 )或最新位置(最新消息 )开始消费,这取决于配置策略。

4、消息拉取

  • 消费者根据分配到的分区,向对应分区的 Leader 副本所在 Broker 发起拉取请求(如向图中broker0上的TopicA - partition0 - leader拉取 )。消费者可配置每次拉取消息的最大数量、最大字节数等参数。若 Broker 当前没有新消息,消费者可能收到空响应,也可设置等待策略,直到有新数据才返回 。

5、消息处理

  • 反序列化 :拉取到的消息通常是序列化的字节数组,消费者利用配置的key.deserializervalue.deserializer进行反序列化,将其转换为程序可处理的对象格式。
  • 业务逻辑处理:对反序列化后的消息,依据具体业务需求进行处理,如写入数据库、进行计算分析等。处理过程中要兼顾可靠性和性能,防止消息积压。

6、偏移量提交

  • 消费者处理完消息后,需将当前消费到的偏移量提交到__consumer_offsets 。可选择自动提交(配置enable.auto.commit=true ,默认每 5 秒提交一次 ),优点是简单,但可能导致重复消费或消息丢失;也可手动提交,开发者在确保消息处理完成后提交,能更精准控制消费位置,保证消息准确消费 。
相关推荐
元拓数智3 分钟前
智能分析落地卡壳?先补好「数据关系+语义治理」这层技术基建
大数据·分布式·ai·spark·数据关系·语义治理
GIS数据转换器5 小时前
农村生活污水治理智慧管控平台
大数据·人工智能·分布式·数据分析·生活·智慧城市
Trouvaille ~6 小时前
【Redis篇】初识 Redis:特性、应用场景与版本演进
数据结构·数据库·redis·分布式·缓存·中间件·持久化
米高梅狮子8 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
郭龙_Jack8 小时前
跨境电商 平台 - ERP - 内部子系统 交互方式总图
分布式·教育电商
喝醉酒的小白8 小时前
Kafka 集群应急故障排查手册
分布式·kafka
无籽西瓜a8 小时前
【西瓜带你学Kafka | 第八期】 Kafka的主从同步、消息可靠性、流处理与顺序消费(文含图解)
java·分布式·后端·kafka·消息队列·mq
qqVHU8 小时前
kafka笔记
笔记·分布式·kafka
醉颜凉8 小时前
Kafka 消息过期时间设置与清理机制全解析
分布式·kafka·linq
Jinkxs8 小时前
SkyWalking - Kafka _ RabbitMQ 消息链路追踪支持
kafka·rabbitmq·skywalking