kafka主题(topic)消息清理记录
服务器磁盘试用率超出80%,通过巡检查看是由于kafka的log目录下占用较多,命令查看当前目录下的磁盘试用情况。这样我们就列出当前目录下占用最多的10个文件或目录。
cpp
du -ah --max-depth=1 . | sort -hr | head -n 10

比较明显的看出,是kafka主题占用较多,通过去topic中查看发现数据文件保存时间已经超出3个月的时间,但是在kafka下的config/server.properties配置文件中
c
log.retention.hours=168
已经配置为了7天。但是没有生效。
怀疑可能是主题在创建是进行过独立设置,于是我们进行排查。
cpp
bin/kafka-configs.sh --zookeeper 172.0.0.1:2181 --describe --entity-type topics --entity-name iot_monitor
查看主题保留数据时间,输出内容为。
c
Configs for topic 'iot_monitor' are max.message.bytes=5242880,retention.ms=15552000000`
可以看到主题实际的数据过期时间为180 天(≈6 个月) 。
于是我们开始手动设置
c
./kafka-configs.sh --zookeeper 172.0.0.1:2181(这里要修改为你实际的zk地址) --alter --entity-type topics --entity-name iot_monitor --add-config retention.ms=604800000
设置完成之后,可以再通过上次执行的命令进行查看。2-3分钟之后,我们再进行查看磁盘空间的大小,以及主题的数据保留时间发现生效了。不过这里的生效只是零时,当重启kafka之后就会失效。