Kafka中offsets.retention.minutes和log.retention.minutes之间的区别

前言

在Kafka中,我们可能会发现两个与retention相关的配置:

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

那么它们之前的差别是什么呢?

定义

首先让我们看看它们在官方文档中的定义

名称描述类型默认值有效值重要性
log.retention.minutesThe number of minutes to keep a log file before deleting it (in minutes), secondary to log.retention.ms property. If not set, the value in log.retention.hours is used
在删除日志文件之前保留日志文件的分钟数(以分钟为单位),优先级弱于 log.retention.ms。 如果未设置,则使用log.retention.hours中的值
intnull
offsets.retention.minutesLog retention window in minutes for offsets topic
主题偏移量日志文的保留时长(分钟)
int1440[1,...]

两者的差别

log.retention.minutes设定的是消息日志的保留时长,而offsets.retention.minutes则是记录topic的偏移量日志的保留时长。

偏移量是指向消费者已消耗的最新消息的指针。 比如,你消费了10条消息,那么偏移量将移动10个位置。 这个偏移量会被记录到日志中,以便我们下次消费时知道应该从哪个offset开始继续消费。
而offsets.retention.minutes允许我们将偏移量重置,即它会清除过期的记录主题偏移量的日志,一旦记录主题偏移量的日志被清楚,我们将不知道之前消费到具体哪个offset。这个设置并不会影响消息日志的保留时间。

比如我们将offsets.retention.minutes设为10,即十分钟。然后最后一次主题A的消费偏移量是100,但是十分钟内我们没有继续消费,该记录主题A的消费偏移量100的日志将会被清除,也就是下次继续消费主题A的消息时,我们不知道上一次消费哪里了(==注意,主题A所存储的消息依旧在broker上,并没有被删除==), 在这种情况下,将会根据==auto.offset.reset== 的设置,读取最早(smallest)/最晚(largest)的消息。

一般来说,记录topic的偏移量日志的保留时长需要设置的比消息日志的保留时长更大。

转载于:https://www.cnblogs.com/lestatzhang/p/10771115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka是一个分布式流处理平台,常用于大规模数据的实时消息传输和处理。.log和.index是Kafka用于存储和管理消息的两个重要文件类型。 首先,.log文件是Kafka存储实际消息内容的文件。每条消息都被追加到相应的.log文件,以保证消息的顺序不变。Kafka的.log文件采用分段的方式进行管理,即一个.log文件会被分成多个固定大小的分段文件,每个分段文件称为一个日志段(log segment)。当一个.log文件达到指定大小时,Kafka会创建一个新的.log文件来继续存储消息。这种分段的存储方式,使得Kafka能够高效地追加写入消息,并支持快速的消息检索。 其次,.index文件是Kafka用于记录消息在.log文件位置信息的索引文件。每个.log文件对应一个.index文件,用于记录消息在.log文件的偏移量和物理位置。通过索引文件,Kafka能够快速定位消息在日志段的位置,以提高消息的读取效率。.index文件的存储方式采用稀疏索引(sparse index)的方式,即只记录部分消息的位置信息,以减小索引文件的尺寸,并提高索引的查询速度。 总结来说,Kafka的.log文件用于持久存储实际的消息内容,而.index文件则用于记录消息在.log文件的位置信息。通过这两个文件的协同工作,Kafka能够实现高效的消息存储和读取,保证数据的顺序和一致性,并提供快速的消息检索和处理能力。这些特性使得Kafka成为一个可靠、高吞吐量的流处理平台,被广泛应用于大规模数据的实时处理场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值