producer
发送消息1,2,3,4
consumer
收到消息1,2,3,4
consumer
崩溃/断开连接
producer
发送消息5,6,7
consumer
重新启动,应该从5而不是7
对于这种结果,我必须使用哪个offset
值以及需要做的其他更改/配置
答案 0 :(得分:13)
当一个使用者加入一个使用者组时,它将获取最后一个提交的偏移量,因此如果在崩溃之前它将重新启动以从5,6,7读取,则提交最新的偏移量(所以4)。
当使用者启动时,earliest
属性的latest
和auto.offset.reset
值将被使用,但指定的分区没有已提交的偏移量。在这种情况下,您可以选择是否要从头(最早)或最后一个(最晚)之后重新阅读所有消息。