案例分析:記一次永久刪除Kafka的Topic的故事

背景
一天早上,我到公司還沒(méi)坐穩(wěn),運(yùn)營(yíng)團(tuán)隊(duì)的大佬就來(lái)找我說(shuō):“小米,系統(tǒng)登錄不上去了,一直提示操作失敗,你給看看,挺急的”,我立刻把電腦從背包拿出來(lái),打開(kāi)系統(tǒng)日志,發(fā)現(xiàn)redis異常,截圖如下:

發(fā)現(xiàn)RDB無(wú)法磁盤(pán)上持久化,去看了Redis日志,報(bào)以下日志:
No space left on device
磁盤(pán)空間滿(mǎn)了,用dum命令一看,乖乖?xún)海粷M(mǎn)了,kafka占190多個(gè)G,進(jìn)入kafka日志文件夾里一看,光光example這個(gè)topic就占了大頭,但詭異的是咱們查看了所有相關(guān)配置,項(xiàng)目里沒(méi)有配置這個(gè)topic,那就著手刪除……

步驟一:刪除kafka中topic存儲(chǔ)目錄
rm -rf example-0
步驟二:查看所有主題
./bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
步驟三:刪除example主題
./bin/kafka-topics.sh ?--delete --zookeeper 127.0.0.1:2181 --topic example
如果kafaka啟動(dòng)時(shí)加載的配置文件中server.properties沒(méi)有配置delete.topic.enable=true,那么此時(shí)的刪除并不是真正的刪除,而是把topic標(biāo)記為:marked for deletion
步驟四:登錄zookeeper
./bin/zkCli.sh
步驟五:查看所有topic
ls/brokers/topics
步驟六:刪除topic
rmr /brokers/topics/example
至此,徹底刪除了該topic,經(jīng)過(guò)定期的觀(guān)看沒(méi)有發(fā)現(xiàn)該topic數(shù)據(jù)。
步驟七:禁用主題自動(dòng)創(chuàng)建
一般情況下,Kafka生產(chǎn)環(huán)境中的配置文件中,會(huì)配置如下參數(shù):
auto.create.topics.enable=false
這樣可以確保topic不會(huì)自動(dòng)創(chuàng)建。
寫(xiě)在最后
好兄弟可以點(diǎn)贊并關(guān)注我的公眾號(hào)“javaAnswer”,全部都是干貨。
