【问题标题】:Difference between retention configuration offsets.retention.minutes and log.retention.minutes保留配置 offsets.retention.minutes 和 log.retention.minutes 之间的差异
【发布时间】:2018-02-28 10:58:07
【问题描述】:

以下两种保留配置有什么区别?

  • offsets.retention.minutes
  • log.retention.minutes

我不明白它之间有何不同或相互关联。据我了解,一旦删除偏移量,日志中的记录就无法访问,反之亦然。是不是我误解了什么?

【问题讨论】:

    标签: apache-kafka retention


    【解决方案1】:

    偏移量是一个指针,指向消费者最近消费的消息。因此,如果您阅读 10 条消息,则偏移量会移动 10 个位置。 offsets.retention.minutes 允许您将偏移量移回起点,如果它在设定的时间段内未更改。

    为了形象化,假设我们将字母 ag(按此顺序)放入 Kafka 主题中,所有时间都不同。在我们开始消费消息之前,偏移量指向最旧的消息:

    OFFSET:    *
    MESSAGES:  a b c d e f g
    

    现在我们消费了 3 条消息(abc),所以偏移量移动了:

    OFFSET:          *
    MESSAGES:  a b c d e f g
    

    现在假设我们设置了log.retention.minutes=10,并且我们在11 分钟前将ab 放入了主题中,但其他消息是最近插入的。我们会看到:

    OFFSET:          *
    MESSAGES:      c d e f g
    

    现在让我们设置offsets.retention.minutes=1,并假设距离我们上次消费任何东西已经过去了 90 秒。我们会看到:

    OFFSET:        *  
    MESSAGES:      c d e f g
    

    因为c 现在是该主题上最旧的消息(也是将被消费的第一条消息)。

    【讨论】:

    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多