Kafka

Kafka 토픽명에 날짜가 포함된 경우 오래된 날짜의 토픽 주기적으로 삭제하기

재심 2022. 10. 27. 11:09

일배치 작업을 위해 날짜가 포함되어 생성된 Kafka 토픽이 있을 수 있다.

ex) topic-20221026

 

이 경우 시간이 흐를수록 토픽은 쌓이기만하므로 정기적으로 삭제해줄 필요가 있을 수 있다.

아래와 같은 스크립트 작성 후 Jenkins에서 스케줄링하는 방식으로 시도

 

#30일전 이름을 가진 토픽들을 배열에 담음 
OLD_DAY=`date +%Y%m%d -d -30day`
TOPICS=(`sudo kafka-topics --bootstrap-server localhost:9092 --list | grep $OLD_DAY`)

#배열을 순회하면서 삭제 
for topic in ${TOPICS[@]}
do
        sudo kafka-topics --bootstrap-server localhost:9092 --delete --topic $topic        
done