第十四章 kafka专题之日志数据删除策略

第十四章 kafka专题之日志数据删除策略,第1张

第十四章 kafka专题之日志数据删除策略
  • 日志数据清理:为了控制磁盘的容量,需要对过去的消息进行清理
1、内部定时任务检测删除日志
  • 默认是5分钟

2、日志清理参数配置
  • 支持配置策略对数据进行清理,以segment为基本单位进行定期清理,当前正在使用的segment不会被清理。

  • 启用cleaner相关参数

    • log.cleaner.enable = ture
    • log.cleaner.threads = 2 (多线程清理,提高数据清理速度)
3、日志删除
  • 删除参数开启:log.cleanup.policy = delete

(1)时间删除策略

  • 时间删除参数:log.retention.hours = 168 #清理超过指定时间的消息的消息,默认7天

  • 删除原理:

①每个日志段文件都会维护一个最大时间戳,每次日志段有新消息写入时,都会更新该字段;

②一个日志段写满被切分后,不再接受任何消息,最大时间戳字段的值也不会发生变化;

③kafka通过当前时间与该最大时间戳字段进行比较,从而判定是否过期。

(2)文件大小阈值删除策略

  • 文件大小阈值参数:log.retention.bytes = 1073741824 #超过指定大小后,删除旧消息,默认是1G

  • 删除原理

①当前日志段大小为1G、删除文件阈值大小为2G;

②三个日志段1G、1G、500M不会触发删除,因为超出阈值部分为500M,小于日志段大小1G,所以不会触发删除;

③四个日志段1G、1G、1G、1M会出发删除,因为超出阈值部分为1G+1M,大于日志段1G,所以会触发删除;

④超过阈值的部分必须要一定大于一个日志段的大小

(3)策略生效时机

  • log.retention.hours或log.retention.bytes任意一个达到要求,都会执行删除。
4、日志压缩
  • 日志压缩:只能针对特定的topic应用此策略,即写入的message都带有Key, 合并相同Key的message, 只留下最新的message;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存