kafka最早和最新的偏移值之间有什么区别

Sat*_*Sat 17 apache-kafka kafka-consumer-api

producer 发送消息1,2,3,4

consumer 接收消息1,2,3,4

consumer 崩溃/断开

producer 发送消息5,6,7

consumer 恢复,应该从5而不是7开始收到消息

对于这种结果,offset我必须使用哪个值以及需要做哪些其他更改/配置

ppa*_*rno 22

当一个使用者加入一个使用者组时,它将获取最后一个提交的偏移量,因此如果在崩溃之前它将重新启动以从5,6,7读取它提交了最新的偏移量(所以4).当使用者启动时,将使用属性的earliestlatest值,auto.offset.reset但是已分配的分区没有已提交的偏移量.在这种情况下,您可以选择是否要从头(最早)或最后一个(最晚)之后重新读取所有消息.

  • 我认为@ppatierno 没有回答这个问题。对于 Sat 的问题: auto.offset.reset 的值应该是最新的。当auto.offset.reset设置为latest时,可能会出现两种情况:消费者第一次订阅主题时,只会收到订阅后到达的消息。其他情况是当消费者重新连接到主题时(在崩溃或其他原因之后),消费者将收到消息 5、6、7,因为最新提交是 4。 (2认同)