偏移量的维护

偏移量的作用

如果消费者一直处于运行状态,那么偏移量就没有什么用处。
偏移量的作用显现与再均衡时期

消费者发生崩溃或者有新的消费者加入群组,就会触发再均衡,完成再均衡之后,每个消费者可能分配到新的分区,而不是之前处理的那个。为了能够继续之前的工作,消费者需要读取每个分区最后一次提交的偏移量,然后从偏移量指定的地方继续处理。

偏移量的提交

消费者往 _consumer_offset 的特殊主题发送消息,消息里包含每个分区的偏移量

提交偏移量的方式
  • 自动提交
    如果enable.auto.commit被设为true,那么每过5s,消费者会自动执行poll()方法。
    poll()方法会返回由生产者写入Kafka但还没有被消费者读取过的记录,并将接收到的最大偏移量提交上去。
    提交时间间隔由auto.commit.interval.ms控制,默认值是5s。

  • 手动提交
    把enable.auto.commit设置为false
    在自己的代码中调用用commitSync()或commitAsync()提交偏移量
    如果使用了Spring-kafka-starter,它会替为我们做人工提交,无需自己调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容