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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章