__consumer_offsets 的清理


KAFKA 的TOPIC __consumer_offsets 的清理

 生產環境因kafka日志數據量過大,導致磁盤空間占用滿了,通過查看發現kafka的日志儲存目錄kafkadata占用90%的存儲。
 再進一步查找,發現目錄下好多__consumer_offsets 生成的儲存文件,每個文件1GB。
 查找了一下kafka配置,發現kafka對部分topic的清理策略做了特殊處理,所以導致我們自己配置的清理策略未生效。

查看現有的__consumer_offsets 清理策略

./kafka-configs.sh --zookeeper es01:2181,es02:2181,es03:2181 --entity-type topics --entity-name __consumer_offsets --describe

打印結果如下:

Configs for topic '__consumer_offsets' are segment.bytes=104857600,cleanup.policy=compact,compression.type=producer

刪除特有的清理策略

./kafka-configs.sh --zookeeper  es01:2181,es02:2181,es03:2181 --entity-type topics --entity-name __consumer_offsets --alter --delete-config cleanup.policy

網上的資料都說 ,刪除掉__consumer_offsets的特殊的清理策略后,默認會使用我們配置文件的清理策略。(對此我未做驗證)

但為了保險我還是給__consumer_offsets 手動添加了清理策略:

./kafka-configs.sh --zookeeper es01:2181,es02:2181,es03:2181 --alter --entity-name __consumer_offsets --entity-type topics --add-config retention.ms=86400000

./kafka-configs.sh --zookeeper es01:2181,es02:2181,es03:2181 --alter --entity-name __consumer_offsets --entity-type topics --add-config cleanup.policy=delete


./kafka-configs.sh --zookeeper es01:2181,es02:2181,es03:2181 --alter --entity-name __consumer_offsets --entity-type topics --add-config 'max.message.bytes=50000000' --add-config 'flush.messages=50000'

添加完后,等了一會就發現kafka的日志目錄大小已經減少很多了,最終磁盤使用率有90%降到了30%,一次生產磁盤危機就此解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM