ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kafka] Log Index File 알아보기
    Kafka 2024. 1. 3. 04:32
    728x90
    반응형

    - 목차

     

    함께 보면 좋은 글.

    https://westlife0615.tistory.com/474

     

    Docker 로 Kafka Cluster 구축해보기.

    - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러스터를 구축하는 내용을 작성하려고 합니다. docker-com

    westlife0615.tistory.com

    https://westlife0615.tistory.com/514

     

    Kafka Log Segment 알아보기

    - 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-comp

    westlife0615.tistory.com

     

    Index File.

    Index File 은 Log Segment 의 Offset 과 Offset 에 해당하는 Record 의 위치를 byte 단위로 기록합니다.

    예를 들어, 5개의 Record 들이 Log Segment File 에 저장되어 있습니다.

    그리고 각각의 Record 의 byte length 가 1KB 라고 한다면,

    Index FIle 은 아래와 같이 Offset 에 해당하는 Record 의 시작 위치를 저장합니다.

    1: 1KB
    2: 2KB
    3: 3KB
    4: 4KB
    5: 5KB

     

    Index FIle 은 Binary 형식으로 저장되어 있기 때문에 내부 컨텐츠를 읽기 위해서는 kafka-dump-log 실행파일을 활용해야합니다.

    kafka-dump-log --files /var/lib/kafka/data/test_topic-0/00000000000000000000.index
    Dumping /var/lib/kafka/data/test_topic-0/00000000000000000000.index
    offset: 188 position: 16372
    offset: 282 position: 32631
    offset: 376 position: 48890
    offset: 470 position: 65149
    offset: 564 position: 81408
    offset: 658 position: 97667
    offset: 752 position: 113926
    offset: 846 position: 130185
    offset: 940 position: 146444

     

    segment.index.bytes

    segment.index.bytesIndex File 의 기본 크기값을 지정하는 설정입니다.

    아래 이미지처럼 segment.index.bytes 의 기본값은 10mb 이구요.

    처음 Topic 이 생성되는 순간 10MB 의 Index File 이 생성됩니다.

     

    그리고 Log Segment File 이 Rolling 되는 시점에 새로운 Log Segment FileIndex File 이 생성됩니다.

    Rolling 되는 시점에 Index File 은 적절한 크기로 Resizing 되는데요.

    한번 테스트를 통해서 확인해보겠습니다.

     

    "index_topic" 이라는 새로운 Topic 을 생성하고, 데이터를 추가해보겠습니다.

    저의 경우 log.segment.bytes 의 값은 기본값인 1GB입니다.

    그리고 Log Segment File 의 크기가 log.segment.bytes 에 도달하게 되면 Rolling 이 시작됩니다.

     

    아래 이미지는 Rolling 되기 직전의 모습입니다.

    Log Segment File 의 크기는 971.6MB 이구요.

    Index File 은 여전히 10MB 입니다.

     

    그리고 Segment Rolling 이 트리거된 이후에 Index File 의 크기는 적절한 사이즈인 516.3KB 로 리사이징됩니다.

    새롭게 생성된 Index File10MB 가 됩니다.

    반응형
Designed by Tistory.