偏移量是指向消费者已消费的最新消息的指针。因此,如果您读取 10 条消息,则偏移量会移动 10 个位置。offsets.retention.minutes
如果在设定的时间内未更改偏移量,则允许您将偏移量移回到开头。
为了形象化它,我们假设我们把字母a
to g
(按顺序)在 Kafka 主题中,所有时间都在不同的时间。在我们开始使用消息之前,偏移量指向最旧的消息:
OFFSET: *
MESSAGES: a b c d e f g
现在我们消费了 3 条消息(a
, b
, c
)因此偏移量移动:
OFFSET: *
MESSAGES: a b c d e f g
现在让我们假设我们已经设置了log.retention.minutes=10
,我们把a
and b
11 分钟前进入该主题,但其他消息是最近插入的。我们会看到:
OFFSET: *
MESSAGES: c d e f g
现在让我们设置offsets.retention.minutes=1
,并假装距离我们上次消耗任何东西已经过去了 90 秒。我们会看到:
OFFSET: *
MESSAGES: c d e f g
because c
现在是该主题上最旧的消息(也是将被使用的第一条消息)。