syk531
하루
syk531
전체 방문자
오늘
어제
  • 분류 전체보기 (166)
    • 개발 (166)
      • java (11)
      • kotlin (7)
      • spring, spring boot (35)
      • Javascript (4)
      • Tyhmeleaf (2)
      • Kafka (17)
      • Docker (8)
      • Kubernetes (3)
      • Elastic Stack (4)
      • react native (3)
      • Web (4)
      • GIS (3)
      • 리눅스 (16)
      • Windows (2)
      • 네트워크 (2)
      • 안드로이드앱 (5)
      • git (2)
      • Tool (15)
      • 프로젝트 (7)
      • 백준알고리즘 (14)
      • DB (2)

인기 글

최근 글

블로그 메뉴

    공지사항

    태그

    • 뉴스앱
    • 티스토리챌린지
    • 오블완

    최근 댓글

    티스토리

    250x250
    hELLO · Designed By 정상우.
    syk531

    하루

    Kafka 메시지 삭제 문제 해결 방법: retention.ms 설정 이해하기
    개발/Kafka

    Kafka 메시지 삭제 문제 해결 방법: retention.ms 설정 이해하기

    2024. 8. 12. 18:33
    728x90
    반응형

    Kafka 토픽의 retention.ms=3600000 으로 설정해서 1시간마다 토픽의 메세지가 삭제되게 설정을 했는데 메세지가 시간이 지나도 삭제가 안되었습니다.

    사유를 확인해보니 Kafka의 메시지는 로그 세그먼트 파일로 저장되는데 메시지 삭제는 로그 세그먼트 단위로 이루어지기 때문에, 해당 세그먼트가 닫히지 않으면 메시지가 삭제되지 않는다고 합니다.

    Kafka에서는 segment.ms(segment 생성 주기), segment.bytes(segment를 파일 크기)를 통해 신규 segment를 언제 생성할지를 결정합니다.

    따로 설정 하지 않았으면 아래의 default값으로 설정이 되고 해당 기준에 걸리지 않으면 신규 segment 파일이 생성 안되고 segment 파일이 닫히지 않았기 때문에 토픽의 retention.ms이 지나도 메세지가 삭제가 안됩니다.

    segment.ms default 값 : 604800000(7일)

    segments.bytes default값 : 1073741824(1 gibibyte)

     

    segment 파일은 Kafka 메세지가 저장되는 Kafka 폴더를 확인해보면 토픽명-파티션번호 폴더에 아래와 같이 생성됩니다.

     

    bitnami/kafka helm 차트를 사용해서 kafka를 설치했기 때문에 extraConfig에 segment.ms 설정을 아래와 같이 추가했습니다.

    extraConfig: |
      segment.ms=3600000

     

    그리고 helm 차트를 upgrade하고 Kafka server.properties 파일을 확인해보니 아래와 같이 extraConfig로 설정한 segment.ms가 설정되었음을 확인할 수 있습니다.

     

    그리고 설정한 segment 생성 기준에 걸리면 아래와 같이 신규 segment 파일이 생깁니다.

     

    그 후에 retention.ms가 지났으면 이전에 생성됬던 segment 파일이 삭제되는것을 확인할 수 있습니다.

     

     

    참고자료

    Kafka 공식사이트

    https://github.com/bitnami/charts/issues/21315

    https://blog.metafor.kr/253

    728x90
    반응형
    저작자표시 (새창열림)

    '개발 > Kafka' 카테고리의 다른 글

    Kafka 토픽 메시지 삭제: 디스크 공간 확보 방법  (0) 2024.08.12
    [Kakfa] No `meta.properties` found in /tmp/kraft-combined-logs 에러 수정  (0) 2024.03.28
    Apache Kafka Raft(KRaft) 소개(ZooKeeper 제거)  (0) 2024.02.13
    Spring Boot에서 Kafka Topic이 Consume 안되는 현상 수정  (1) 2024.01.29
    Kafka 서버 비정상적 종료 에러 해결 (다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다)  (0) 2024.01.25
      '개발/Kafka' 카테고리의 다른 글
      • Kafka 토픽 메시지 삭제: 디스크 공간 확보 방법
      • [Kakfa] No `meta.properties` found in /tmp/kraft-combined-logs 에러 수정
      • Apache Kafka Raft(KRaft) 소개(ZooKeeper 제거)
      • Spring Boot에서 Kafka Topic이 Consume 안되는 현상 수정
      syk531
      syk531
      기억을 위해 기록을.

      티스토리툴바