Kafka Segment

헨도·2025년 4월 6일
0

Kafka

목록 보기
6/10
post-thumbnail

Segment

  • Kafka 의 세그먼트는 파티션의 데이터를 실제로 저장하는 물리적인 파일이다.
    Kafka 는 각 파티션을 여러 개의 세그먼트 파일로 나누어 저장합니다.

역할

데이터 저장 단위

  • Kafka 는 로그 데이터를 순차적으로 기록하는 방식으로 데이터를 저장하는데, 일정 크기(기본 크기: 1GB) 나 일정 시간이 경과되면 새로운 파일로 교체됩니다.
  • 이렇게 저장된 세그먼트 파일은 디스크에 순차적으로 읽고 쓸 수 있으므로 디스크 I/O 를 최적화할 수 있습니다.

특징

  • 세그먼트 파일은 크기가 일정하며, 파일이 꽉 차면 새로운 세그먼트 파일이 생성됩니다.
  • 오래된 세그먼트 파일은 설정에 의해 관리됩니다.

작동 방식

  • Producer 가 파티션에 데이터를 기록할 때, Kafka 는 이 데이터를 현재 활성 세그먼트 파일에 추가한다.
  • 세그먼트 파일이 설정된 최대 크기 도달 시, 새로운 세그먼트 파일이 생성되고 이후 데이터를 새로운 파일에 기록되어 저장한다.
  • Consumer 는 이러한 세그먼트 파일로부터 데이터를 읽어 처리한다.

중요성

  • 세그먼트는 Kafka 의 데이터 저장 및 관리 방식의 핵심 요소이다.
    세그먼트를 통해 Kafka 는 대용량 데이터를 효과적으로 처리하며, 시스템의 안정성과 성능을 유지할 수 있도록 도움을 준다.
  • 세그먼트를 사용함으로써 Kafka 는 디스크 I/O 작업을 최소화하여, 데이터의 순차적인 읽기 및 쓰기를 보장합니다.

Segment vs Offset

  • Kafka 의 순차 보장이라는 개념을 배운 후 정확하게 파악되지 않았을 때는 Segment 만 보고 순서 보장 역할을 하는 애구나 생각했는데 offset 으로 하는 것이였다...

Offset 정의

  • 오프셋은 Kafka의 파티션 내에서 메시지가 저장된 위치를 나타내는 고유한 숫자입니다. 각 메시지는 파티션 내에서 고유한 오프셋 번호를 가지며, 이 오프셋을 사용하여 소비자는 메시지를 추적하고 읽습니다.

차이점

  • 세그먼트는 실제 데이터를 저장하는 파일 단위로, Kafka 파티션 내에서 데이터가 물리적으로 저장되는 구조입니다.

  • 오프셋은 각 메시지가 파티션 내에서 저장된 순서에 해당하는 고유한 숫자값으로, 데이터의 논리적인 순서를 나타냅니다.

profile
Junior Backend Developer

0개의 댓글