earliest: automatically reset the offset to the earliest offset,自动将偏移量置为最早的。难道不是topic中各分区的开始?结果还真不是,具体含义如下:
auto.offset.reset值含义解释
earliest
latest
none
topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常
以下为测试详细:
1.同分组下测试
1.1测试一
1.1.1测试环境


1.1.2测试结果
earliest
latest
none
1.1.3测试结论
earliest
none
1.2测试二
1.2.1测试环境

1.2.2测试结果
latest
客户端取到了后生产的10条数据
1.2.3测试结论
当创建一个新分组的消费者时,auto.offset.reset值为latest时,表示消费新的数据(从consumer创建开始,后生产的数据),之前产生的数据不消费。
1.3测试三
1.3.1测试环境

1.3.2测试结果
earliest
消费35条数据,即将剩余的全部数据消费完。
latest
offset:8 partition:3
none
1.3.3测试结论
earliest
latest
none
1.4测试四
1.4.1测试环境

1.4.2测试结果
none
offset:5 partition:2
1.4.3测试结论
值为none时,topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常。
2.不同分组下测试
2.1测试五
2.1.1测试环境

2.1.2 测试结果
earliest
消费50条数据,即将全部数据消费完。
latest
消费0条数据。
none
2.1.3测试结论
topic中已有分组消费数据,新建其他分组ID的消费者时,之前分组提交的offset对新建的分组消费不起作用。