Kafka日志留存机制

1、__consumer_offsets-xx/00000000000000000000.log文件

生产者提交到broker中的消息,会保存在本地的logs/__consumer_offsets-xx/00000000000000000000.log文件中

2、实现原理

默认情况这些文件不会永久保留,当超过了保留时间或体积后,kafka会对这些文件进行删除(置空)

1)根据log.retention条件判断,以segment为单位,判断该segment是否为可删除

2)如果满足条件,将其标记为可删除,并且在日志文件cleaner-offset-checkpoint中记录当前清理到的位置

3)由组件LogCleaner实现,将null写入该log文件中来置空文件

3、参数解析

# 日志保留7天

log.retention.hours=168 

# 日志保留1073741824bytes

log.retention.bytes=1073741824

# 日志文件超过1073741824bytes则生成新的日志文件

log.segment.bytes=1073741824

# 检查日志文件的间隔时间,根据文件属性来确定是否达到删除要求,默认5min

log.retention.check.interval.ms=300000

你可能感兴趣的:(Kafka日志留存机制)