Kafka message 保留時間

如果你的 kafka topic 的 message 沒有長期保存的價值,又不想它持續佔用大量硬碟空間的話,可以針對 topic 做下面設定:

1
2
3
4
5
# /path/to/kafka-root/bin/kafka-configs.sh --zookeeper zookeeper:2181 \
--entity-type topics --entity-name MY-TOPIC --alter \
--add-config retention.ms=$((86400 * 3 * 1000))

Completed Updating config for entity: topic 'MY-TOPIC'.

就能將 MY-TOPIC 這個 topic 保留時間縮短為 3 天 (預設是 7 天),超過時間的 message 將會被陸續刪除。

相關的 config 也要注意,如 cleanup.policy 需為 delete,或你也可以設定 retention.bytes 依使用空間做出限制。

References