Kafka消费者消费规则及问题

  • Post author:
  • Post category:其他




Kafka消费者消费规则

  • 消费者消费Kafka中的Topic根据Offset进行消费,每次从上一次的位置+1继续消费
  • 第一次消费规则:由属性决定

auto.offset.reset=latest | earliest

latest:默认的值,从Topic每个分区的最新的位置开始消费

earliest:从最早的位置开始消费,每个分区的offset为0开始消费

  • 第二次消费开始:根据上一次消费的Offset位置+1继续进行消费

    在这里插入图片描述



Kafka消费者消费过程中存在的问题



问题1:

消费者如何知道上一次消费的位置是什么?

每个消费者都将自己上一次消费的offset记录自己的内存中



问题2:

如果因为网络资源等原因,消费者故障了,重启消费者,原来内存中offset就没有了,消费者怎么知道上一次消费的位置?

  1. Kafka Offset偏移量管理
  • Kafka将每个消费者消费的位置主动记录在一个Topic中:

    __consumer_offsets

    ,它记录了每个消费者这一次要消费的位置
  • 如果下次消费者没有给定请求offset,kafka就根据自己记录的offset来提供消费的位置

    在这里插入图片描述
  1. 提交规则:根据时间自动提交
props.setProperty("enable.auto.commit", "true");//是否自动提交offset
props.setProperty("auto.commit.interval.ms", "1000");//提交的间隔时间



版权声明:本文为zh2475855601原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。