乐趣区

kafka-消费者消费过程解析

消费者消费过程解析

  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 中。
退出移动版