【kafka】-生产环境问题-产线上客户的电脑c盘空间越来越小,kafka日志文件的索引文件删除不掉的原因解释
首先解释下为什么产线客户电脑c盘空间越来越小?
是因为如下图所示,kafka数据文件所对应的两个索引文件xxxxxx.index(偏移量索引文件),xxxxxx.timeindex(时间戳索引文件)没有被删除掉引起的,因为产线上现在已经有1000多个topic,每1个topic这两个索引文件就占了20m,1000多个topic就是20g了,量一大起来,c盘空间就越来越小了。
我类比了下linux平台的kafka的日志清理的表现
1.将server.properties配置文件中的配置项改为log.retention.hour=1(日志保留1小时),如下图所示
2.我创建了名为logdelete的topic并生产了一些数据,让数据日志文件大小为1kb(0000000000000000000.log为1kb),且kafka给我对应的产生了2个索引文件(0000000000000000000.index 10M,0000000000000000000.timeindex 10M),如下图所示
3.过1小时后上服务器再看文件,看到日志分段所对应的所有文件添加上".deleted"的后缀(当然也包含对应的索引文件)(在21点34的时候,也就是我配置的1小时后几分钟),如下图所示
kafka有个延迟任务来删除这些以“.deleted”为后缀的文件
4.又过了一会数据文件0000000000000000000.log和其对应的索引文件(0000000000000000000.index,0000000000000000000.timeindex)消失不见了,且产生了新的数据文件名为0000000000000000003.log,文件大小为0kb
结论:因为我用的kafka是windows平台的,而且是人家改过的版本,和linux平台正儿八经的kafka不一样(就好像在linux上的kafka删除topic后,kafka一切正常,而在windows上的kafka删除topic,kafak就宕机了),就会有这些莫名其妙的bug