Kafka 重启消费者后,从分区的哪里开始重新消费(队列头?队列尾?上一次消费位置?),auto.offset.reset

这篇文章不错,先看这篇https://blog.csdn.net/lishuangzhe7047/article/details/74530417

看文章时注意一些关系:

è¿éåå¾çæè¿°

 

CURRENT-OFFSET这个表示消费者消费了数据之后提交的offset,即消费者消费了的数据的偏移量。如果为unknown,则表示消费者未提交过offset。

LOG-END-OFFSET这个应该表示的是该分区的HW。

LAG表示延迟滞后,也就是生产者已经写到kafka集群了,然后有还没有被消费的数量,是logSize-currentOffset,logsize指的是消息总数。

 

总结一下:

1、如果CURRENT-OFFSET不是为unknown(消费者以前消费过数据,提交过offset),重启消费者时earliest、latest、none都是会从CURRENT-OFFSET一直消费到LOG-END-OFFSET。也就是不会更新offset。

2、如果CURRENT-OFFSET为unknown,重启消费者时earliest、latest、none才会展现出他们各自的不同:

(1)earliest ,会从该分区当前最开始的offset消息开始消费(即从头消费),如果最开始的消息offset是0,那么消费者的offset就会被更新为0.

(2)latest,只消费当前消费者启动完成后生产者新生产的数据。旧数据不会再消费。offset被重置为分区的HW。

(3)none,启动消费者时,该消费者所消费的主题的分区没有被消费过,就会抛异常。(一般新建主题或者用新的消费者组是使用这个就会抛异常。。宕机重启的话,使用这个就没问题。。这个的作用是什么?我猜测应该是用于在重启消费者时检查该消费者所消费的主题以及所属的消费者组的名称是否写错了,导致该消费者没有消费原来主题分区)

在java api中设置auto.offset.reset值(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG)可以指定。

 

看了这篇文章之后基本明白意思了,但是有个疑问:

kafka数据不是会过期删除么,如果消费者宕机期间有数据因为过期被删除了,然后已提交的offset属于这被删除的数,请问这种算是什么情况?

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
不完全正确。Kafka session.timeout.ms 实际上是指消费者Kafka broker 之间的心跳间隔时间。消费者会定期向 Kafka broker 发送心跳请求,以确保其仍然处于活动状态。如果 Kafka broker 在 session.timeout.ms 时间内没有收到来自消费者的心跳请求,则会将该消费者视为已死亡,并将其分区重新分配给其他消费者进行消费。 关于如何快速全面掌握 Kafka,以下是一些建议: 1. 了解 Kafka 的基本概念和架构:Kafka 是一个分布式的消息队列系统,具有高可用性、高扩展性和高吞吐量等特点。了解 Kafka 的基本概念和架构对于学习 Kafka 是非常重要的。 2. 学习 Kafka 的 API:Kafka 提供了多种 API,包括生产者 API、消费者 API、管理 API 等。学习这些 API 可以帮助您更好地使用 Kafka。 3. 实践 Kafka:实践是学习 Kafka 最好的方法之一。可以使用 Kafka 的 Docker 镜像快速搭建 Kafka 环境,并通过编写代码来实现 Kafka 的生产和消费。 4. 学习 Kafka 的监控和调优:监控和调优是保证 Kafka 高可用性和高性能的关键。了解如何监控和调优 Kafka 可以帮助您更好地了解 Kafka 的运行状况和性能。 5. 参加 Kafka 社区:Kafka 社区是一个非常活跃的社区,其中有很多专家可以提供帮助和建议。参加 Kafka 社区可以帮助您更快地学习 Kafka,并获得更多的经验。 总之,要想快速全面掌握 Kafka,需要进行理论学习和实践结合,不断尝试和实践,并且要保持对 Kafka 社区的关注和参与。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值