关于kafka:consumer_offsets日志不能自动清理,设置自动清理规则
起因
Kafka服务器在运行一段时间后,存储空间耗尽了。剖析Kafka的占用空间状况,发现Kafka主动生成的"__consumer_offset"topic,占用了大量空间,它用于记录每个用户topic的生产偏移量。这一topic实用的清理规定与其余topic不同,某些状况下,它可能始终得不到清理,耗尽服务器资源。
新版kafka
1.查看对应策略
./kafka-configs.sh --bootstrap-server 127.0.0.1:9092 --entity-type topics --entity-name __consumer_offsets --describe

2.修改策略
./kafka-configs.sh --bootstrap-server 127.0.0.1:9092 --entity-type topics --entity-name __consumer_offsets --alter --add-config 'cleanup.policy=delete'

3.检查策略是否生效
./kafka-configs.sh --bootstrap-server 127.0.0.1:9092 --entity-type topics --entity-name __consumer_offsets --describe

策略修改后,无需重启应用,配置等几分钟就生效自动会删除过期文件。
老版kafka需要将命令中的:
--bootstrap-server 127.0.0.1:9092替换成--zookeeper zk3:2181即可。