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

时间:2018-01-18 11:50:27

标签: apache-kafka kafka-consumer-api

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

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

consumer崩溃/断开连接

producer发送消息5,6,7

consumer重新启动,应该从5而不是7

开始接收消息

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

1 个答案:

答案 0 :(得分:13)

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