auto.offset.reset值含义解释
earliest
当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
latest
当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据
none
topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常
经过测试,同组和不同组的情况是不一样的。
1.同组下规则如下:
新建一个同组名的消费者时,auto.offset.reset值含义: earliest 每个分区是从头开始消费的。 none 没有为消费者组找到先前的offset值时,抛出异常 当创建一个新分组的消费者时,auto.offset.reset值为latest时,表示消费新的数据(从consumer创建开始,后生产的数据),之前产生的数据不消费 earliest 当分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费。 latest 当分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据。 none 当该topic下所有分区中存在未提交的offset时,抛出异常。
2.不同组下:
组与组间的消费者是没有关系的。
topic中已有分组消费数据,新建其他分组ID的消费者时,之前分组提交的offset对新建的分组消费不起作用。也就是说就算A组提交了偏移量。B组的人还是从头开始。