微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

kafka系列:设置日志数据保存过期时间(含某个topic)、日志策略

kafka aide_941 6℃
        

目录

全局设置(h)

某个Topic设置(ms)

立刻删除(now)

日志策略

分段策略属性

日志刷新策略

日志保存清理策略

参考

全局设置(h)

server.properties

  1. log.retention.hours=72
  2. log.cleanup.policy=delete

某个Topic设置(ms)

比如topic:xdoctorx

./kafka-configs.sh –zookeeper localhost:2181 –alter –entity-name xdoctorx –entity-type topics –add-config retention.ms=86400000

查看是否生效

./kafka-config –zookeeper localhsot:2181 –describle –entity-name xdoctorx –entity_type topics

 

立刻删除(now)

./kafka-topics.sh –zookeeper localhost:2181 –alter –topic xdoctorx –config cleanup.policy=delete

查看是否生效

./kafka-topics.sh –zookeeper localhost:2181 –topic xdoctorx –describe

 

 

日志策略

分段策略属性

属性名 含义 默认值
log.roll.{hours,ms} 日志滚动的周期时间,到达指定周期时间时,强制生成一个新的segment 168(7day)
log.segment.bytes 每个segment的最大容量。到达指定容量时,将强制生成一个新的segment 1G(-1为不限制)
log.retention.check.interval.ms 日志片段文件检查的周期时间 60000

日志刷新策略

Kafka的日志实际上是开始是在缓存中的,然后根据策略定期一批一批写入到日志文件中去,以提高吞吐率。

属性名 含义 默认值
log.flush.interval.messages 消息达到多少条时将数据写入到日志文件 10000
log.flush.interval.ms 当达到该时间时,强制执行一次flush null
log.flush.scheduler.interval.ms 周期性检查,是否需要将信息flush 很大的值

 

日志保存清理策略

属性名 含义 默认值
log.cleanup.polict 日志清理保存的策略只有delete和compact两种 delete
log.retention.hours 日志保存的时间,可以选择hours,minutes和ms 168(7day)
log.retention.bytes 删除前日志文件允许保存的最大值 -1
log.segment.delete.delay.ms 日志文件被真正删除前的保留时间 60000
log.cleanup.interval.mins 每隔一段时间多久调用一次清理的步骤 10
log.retention.check.interval.ms 周期性检查是否有日志符合删除的条件(新版本使用) 300000

日志删除,只是无法被索引到了而已。文件本身仍然是存在的,只有当过了log.segment.delete.delay.ms 这个时间以后,文件才会被真正的从文件系统中删除。

 

参考

https://kafka.apache.org/documentation/#log.flush.interval.messages

转载请注明:SuperIT » kafka系列:设置日志数据保存过期时间(含某个topic)、日志策略

转载请注明:SuperIT » kafka系列:设置日志数据保存过期时间(含某个topic)、日志策略

喜欢 (1)or分享 (0)