-
[Kafka] Log Index File 알아보기Kafka 2024. 1. 3. 04:32728x90반응형
- 목차
함께 보면 좋은 글.
https://westlife0615.tistory.com/474
https://westlife0615.tistory.com/514
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.bytes 는 Index File 의 기본 크기값을 지정하는 설정입니다.
아래 이미지처럼 segment.index.bytes 의 기본값은 10mb 이구요.
처음 Topic 이 생성되는 순간 10MB 의 Index File 이 생성됩니다.
그리고 Log Segment File 이 Rolling 되는 시점에 새로운 Log Segment File 과 Index 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 File 은 10MB 가 됩니다.
반응형'Kafka' 카테고리의 다른 글
[Kafka] ProducerInterceptors 알아보기 (0) 2024.01.05 [Kafka] Partition Ownership 알아보기 (0) 2024.01.05 [Kafka] listeners, advertised.listeners 알아보기 (0) 2024.01.01 [Kafka] Partition Leader Election 알아보기 (파티션 리더 선출) (0) 2023.12.31 [Kafka Streams] Config 알아보기 (0) 2023.12.29