本帖最后由 肖杨 于 2023-4-10 11:35 编辑
kafka所有未过期的消息都会写在磁盘上,磁盘空间不足时考虑缩短队列消息保留时间
标准安装时 kafka数据在/sobeyhive/data/kafka/目录下,可以使用以下命令检查各topic的空间占用 cd /sobeyhive/data/kafka/ && du . -h -t 1G 全局配置位于docker run中 可以修改/sobeyhive/app/install/kafka/kafka-1.1.1-run.sh(以实际版本号为准)文件, 其中的参数KAFKA_LOG_RETENTION_HOURS代表消息的过期时间,单位为小时。此方案需要重建kafka的docker实例。
单个队列配置
工具处理
在kafka启动后 使用kafka-tool选中队列 在config页添加参数retention.ms(单位为毫秒) 命令行处理 进入kafka container后执行 ./kafka-topic --alter --zookeeper $KAFKA_ZOOKEEPER_CONNECT --topic YOUR_TOPIC_NAME --config retention.ms=3600000 注意 较早版本的kafka实例执行脚本会有异常 先执行以下命令 unset JMX_PORT KAFKA_OPTS
常见消息量大的队列hivenotifyforml、hivenotifyforweb、hivenotifyforAPI、MAYAM_MQ*、MBH_APIGW_MQ_v?用于消息实时通知,清除旧消息不影响流程,可以设置为小于1小时过期。 队列会在下次kafka内部检查(默认设置是5分钟)时清理
|