kafka 消费者消费过程解析

本文详细解析了Kafka消费者消费消息的过程,包括消费者如何连接Broker集群,请求并消费特定topic的消息,以及如何处理消息偏移量(offset)的提交。探讨了在消费能力不足时可能引发的重复消费问题,并提出了相应的解决方案。

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

消费者消费过程解析

  1. cousumer 向boker 集群提交连接请求,返回 broker controller 的通信url
  2. consumer 指定要消费的topic 后, 向broker bontroller提交 消息请求
  3. broker controller 将consumer 分配一个或者多个 partition leader 。并且将对应的parittion的offset 发送给 consumer
  4. consumer 消费完消息后,消费者会向broker 发送一个消息被消费的反馈。也就是提交 该消息的offset
  5. 当broker 接收到 offset 后,会更新到对应的consumer_offset中

重复消费问题

当消费者消费能力较低 而引发了 消费超时的时候,就会形成重复消费。 当时间到达的时候,恰好有一个消息被消费掉了。但是没有提交offset。就会出现重复消费的问题

将自动提交改成树洞提交。或者是延迟kafka的 提交时间

消费者提交offset

  • 消费者的offset 具体存放到哪个partition中?
  • 消费者都会随机生成一个消费者id 然后取hash。模50 得到一个下角标。存到对应的offset中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值