카프카의 데이터 보관 주기는 기본적으로 7일로 설정되어 있다.
보관 주기를 수정하는 방법 2가지가 있으며, 수정할때도 용량단위, 시간단위, 일단위, 초단위로 구체적인 단위로 설정 가능하다.
방법1. server.properties 파일 수정
보관주기 옵션 항목
- log.retention.bytes : byte 단위 기준으로 데이터 보관
- log.retention.ms : 초 단위 기준으로 데이터 보관
- log.retention.minutes : 분 단위 기준으로 데이터 보관
- log.retention.hours : 시간 단위 기준으로 데이터 보관, 해당 옵션이 168으로 기본으로 적용되어 있음
server.properties 파일 확인
############################# Log Retention Policy #############################
# The following configurations control the disposal of log segments. The policy can
# be set to delete segments after a period of time, or after a given size has accumulated.
# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens
# from the end of the log.
# The minimum age of a log file to be eligible for deletion due to age
log.retention.hours=168
# A size-based retention policy for logs. Segments are pruned from the log unless the remaining
# segments drop below log.retention.bytes. Functions independently of log.retention.hours.
#log.retention.bytes=1073741824
# The maximum size of a log segment file. When this size is reached a new log segment will be created.
log.segment.bytes=1073741824
# The interval at which log segments are checked to see if they can be deleted according
# to the retention policies
log.retention.check.interval.ms=300000
기본값은 168시간 = 7일로 되어 있으며, 보관주기를 변경하고 싶다면 해당 항목을 수정하면 된다.
옵션 상세 내용
방법2. 토픽 레벨에서 옵션으로 적용
토픽별로 보관주기를 변경하고 싶다면 토픽 관련 명령어(ex : bin/kafka-topic.sh 등) 실행시
--config 옵션으로 설정가능하다.
보관주기 옵션 항목
- retention.bytes : byte 단위 기준으로 데이터 보관
- retention.ms : 초 단위 기준으로 데이터 보관
토픽 생성시 사용 예시
bin/kafka-topics.sh --zookeeper ${zookeeper ip address} --create--topic ${topicName} --config retention.ms=86400000
이미 생성된 토픽의 보관주기 변경시 사용 예시
bin/kafka-topics.sh --zookeeper ${zookeeper ip address} --alter --topic ${topicName} --config retention.ms=86400000
topic으로 변경시에는 운영시에도 broker 다운을 하지 않아도 옵션만으로 변경가능하다.
옵션 상세 내용
필요에 따라 broker 단위로 보관주기를 설정하거나, 토픽별로 보관주기를 설정할수 있다.
참고사이트
'Programming > Kafka' 카테고리의 다른 글
[kafka] multi-node zookeeper & kafka docker-compose.yml file (0) | 2020.05.19 |
---|---|
[kafka][용어정리] ISR : In Sync Replica (2) | 2020.05.14 |
[kafka] JVM Heap size (0) | 2020.05.13 |