zoukankan      html  css  js  c++  java
  • kafka学习总结015 --- consumer配置参数之auto.offset.reset

    auto.offset.reset用来指定consumer消费策略,有如下取值:

    1、latest(分区有提交的offset,从提交的offset后一个offset开始消费;否则等待新生产的数据【默认配置】

    示例:topic3有两个分区、3个副本;其中topic3-0有五条数据,offset为0~4,但是offset0~offset4未提交,验证结果如下:

    指定不自动提交offset && auto.offset.reset=latest:

    消费者启动后,发现未消费到数据,并且对于topic3-0分区来说HW为5:

    此时再生产5条数据,可以看到,消费者消费的offset区间为5~9:

    2、earliest(分区有提交的offset,从提交的offset后一个offset开始消费;否则从头开始消费

    示例:接着前面的例子,topic3-0中有10条数据,offset为0~9,验证结果如下:

    配置auto.offset.reset为earliest

    消费者启动,可以看到从头开始消费数据:

    3、none(分区有提交的offset,从提交的offset后一个offset开始消费;否则抛出异常

    分区无已经提交的offset:

    分区0内有15条数据,offset为0~14,其中offset0~offset9已经被提交;offset10~14未提交;

    consumer启动后再生产5条数据,结果如下:

    个人使用建议:

    1、auto.offset.reset最好不要设置为latest,这是因为:如果分区内的数据未被消费过,这时消费者上线,会导致消费者无法消费到前面的数据(当然也得看应用场景,如果认为这种情况的数据就该丢失,那当我没说)

    2、auto.offset.reset设置为earliest时,可能会有重复消费的问题,这就需要消费者端做数据去重处理

  • 相关阅读:
    [HDOJ3523]Image copy detection
    [HDOJ3526]Computer Assembling
    Ubuntu12.04 配置步骤
    const 详解
    ubuntu 12.04 源
    函数参数和数据成员同名
    友元
    静态数据 成员和静态函数
    成员指针
    内存泄露
  • 原文地址:https://www.cnblogs.com/sniffs/p/13203721.html
Copyright © 2011-2022 走看看