Programming/Kafka

[kafka] 보관 주기 설정

bisi 2020. 5. 15. 15:24

카프카의 데이터 보관 주기는 기본적으로 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 단위로 보관주기를 설정하거나,  토픽별로 보관주기를 설정할수 있다. 

 

참고사이트 

카프카 공식 레퍼런스