日志删除

日志删除是以段(segment日志)为单位来进行定期清理的。

Kafka日志管理器中会有一个专门的日志删除任务来定期检测和删除不符合保留条件的日志分段文件,这个周期可以通过broker端参数log.retention.check.interval.ms来配置,默认是300,000,即5分钟。当前日志分段的保留策略有3种:

(1)基于时间的保留策略

三种配置可以指定如果kafka中的消息超过指定的阈值,就会将日志自动清理:

  • Log.rentention.hours
  • Log.retention.minutes
  • Log.retention.ms

(2)基于日志大小的保留策略

日志删除任务会检查当前日志的大小是否超过设定的阈值来寻找可删除的日志分段的文件集合。可以通过broker端惨log.retention.bytes来配置,默认值是-1,表示无穷大。如超过该大小,会自动将超出部分删除。

(3)基于日志起始偏移量的保留策略

一般情况下日志文件的起始偏移量logStartOffset等于第一个日志分段的baseOffset,但是这并不是绝对的,logStartOffset的值可以通过DeleteRecordsRequest请求、日志的清理和截断等操作修改。

基于日志起始偏移量的删除策略的判断依据是某日志分段的下一个日志分段的起始偏移量baseOffset是否小于等于logStartOffset,若是则可以删除此日志分段。

posted @ 2021-07-13 00:31  Eleanor123  阅读(226)  评论(0编辑  收藏  举报