Kafka日志清理策略有哪些

这篇文章主要为大家展示了“Kafka日志清理策略有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Kafka日志清理策略有哪些”这篇文章吧。

太湖网站建设公司创新互联,太湖网站设计制作,有大型网站制作公司丰富经验。已为太湖成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的太湖做网站的公司定做!

Kafka日志清理目前主要有两种策略:

  1. 日志删除

  2. 日志压缩:日志压缩就是根据key来保留最后一条消息。

Kafka提供log.cleanup.policy参数进行相应配置,默认值:delete,还可以选择compact。

日志删除
配置默认值说明
log.retention.check.interval.ms300000 (5分钟)检测频率
log.retention.hours168 (7天)日志保留时间小时
log.retention.minutes
日志保留时间分钟
log.retention.ms
日志保留时间毫秒
file.delete.delay.ms60000 (1分钟)延迟执行删除时间
log.retention.bytes-1 无穷大运行保留日志文件最大值
log.retention.bytes1073741824 (1G)日志文件最大值

Kafka会根据检测频率周期性的检测日志是否需要删除,日志删除策略主要有以下集中:

  • 基于时间的删除策略

  • 基于文件大小的删除策略

  • 基于日志文件起始偏移量

基于时间删除

Kafka会查找日志段的时间戳索引文件中的最后一条记录,如果最后一条timestamp小于0,则取最近修改时间。

当确认完需要删除的日志段以后,需要进行以下删除操作:

  1. 从日志对象中所维护日志分段的ConcurrentSkipListMap中移除待删除的日志分段,保证没有线程对这些日志分段进行读取操作。

  2. 为日志段中的所有文件加上.delete后缀

  3. Kafka中会有一个命名为"delete-file"的延迟任务来删除这些无效的日志数据

假如当前日志段中也有需要删除的数据,那么kafka会先进行分段,创建一个新的活跃日志段,然后执行删除操作。

基于大小删除
  1. 计算需要删除的日志大小的总和(当前日志大小-所允许的日志文件最大值)

  2. 然后从第一个日志分段开始查找,查找可以进行删除的日志段集合

  3. 最后执行删除操作

基于日志文件起始偏移量

日志文件起始偏移量默认等于第一个日志段的基准偏移量,但随着数据的删除操作,该值也在不断变化。

基于日志文件起始偏移量的判断规则是,如果一个日志段的下一个日志段的起始偏移量如果小于日志文件起始偏移量,那么该日志段就可以被加入到删除队列,最后执行删除。

以上是“Kafka日志清理策略有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章标题:Kafka日志清理策略有哪些
当前网址:http://scyanting.com/article/ijgesg.html