扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要为大家展示了“Kafka日志清理策略有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Kafka日志清理策略有哪些”这篇文章吧。
太湖网站建设公司创新互联,太湖网站设计制作,有大型网站制作公司丰富经验。已为太湖成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的太湖做网站的公司定做!
Kafka日志清理目前主要有两种策略:
日志删除
日志压缩:日志压缩就是根据key来保留最后一条消息。
Kafka提供log.cleanup.policy参数进行相应配置,默认值:delete,还可以选择compact。
配置 | 默认值 | 说明 |
---|---|---|
log.retention.check.interval.ms | 300000 (5分钟) | 检测频率 |
log.retention.hours | 168 (7天) | 日志保留时间小时 |
log.retention.minutes | 日志保留时间分钟 | |
log.retention.ms | 日志保留时间毫秒 | |
file.delete.delay.ms | 60000 (1分钟) | 延迟执行删除时间 |
log.retention.bytes | -1 无穷大 | 运行保留日志文件最大值 |
log.retention.bytes | 1073741824 (1G) | 日志文件最大值 |
Kafka会根据检测频率周期性的检测日志是否需要删除,日志删除策略主要有以下集中:
基于时间的删除策略
基于文件大小的删除策略
基于日志文件起始偏移量
Kafka会查找日志段的时间戳索引文件中的最后一条记录,如果最后一条timestamp小于0,则取最近修改时间。
当确认完需要删除的日志段以后,需要进行以下删除操作:
从日志对象中所维护日志分段的ConcurrentSkipListMap中移除待删除的日志分段,保证没有线程对这些日志分段进行读取操作。
为日志段中的所有文件加上.delete后缀
Kafka中会有一个命名为"delete-file"的延迟任务来删除这些无效的日志数据
假如当前日志段中也有需要删除的数据,那么kafka会先进行分段,创建一个新的活跃日志段,然后执行删除操作。
计算需要删除的日志大小的总和(当前日志大小-所允许的日志文件最大值)
然后从第一个日志分段开始查找,查找可以进行删除的日志段集合
最后执行删除操作
日志文件起始偏移量默认等于第一个日志段的基准偏移量,但随着数据的删除操作,该值也在不断变化。
基于日志文件起始偏移量的判断规则是,如果一个日志段的下一个日志段的起始偏移量如果小于日志文件起始偏移量,那么该日志段就可以被加入到删除队列,最后执行删除。
以上是“Kafka日志清理策略有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流