[Kafka] Kafka Broker

CHAN LIM·2024년 1월 17일
0

Kafka

목록 보기
3/13

Kafka Broker

Kafka Cluster 내에 존재하는 서버이자
데이터를 주고 받는 주체.

  • 크게 데이터 저장, 복제, 삭제로 나눈다.

데이터 저장

  • Producer로부터 데이터를 받으면 TopicPartition에 데이터 저장
  • File System에 저장한다.

    • 이로 인한 파일입출력 속도 이슈가 발생
      • 해당 이슈는 Page Cache로 대응
        • OS에 만든 메모리 영역으로,
          읽은 파일 내용은 해당 캐시에 저장하고,
          동일 파일을 다루면 캐시 메모리에서 직접 읽는다.
          • 이 때문에 Heap 메모리를 크게 설정하지 않아도 된다.
  • Consumer가 데이터 요청 시, Partition에 저장된 데이터 전달


데이터 복제

  • 복제를 통해 고가용성 보장
  • 장애 허용 시스템

  • 데이터 복제 단위는 Partition

  • Leader / Follower 방식이며,
    Replication Factor 설정을 한다.

    • Follower는 Leader의 Offset을 확인하고
      차이가 나면 Leader로부터 가져와 저장한다.
    • 2 이상의 replication factor 권장

      IF

      Leader인 0번 Broker가 장애
      -> FailOver
      -> Follower 중 하나가 후보, Leader로 선정된다.

클러스터의 안정성과 효율성을 유지하기 위한 역할들

  • Controller
    • Broker의 Health Check
    • FailOver 시, Leader 선정
    • 컨트롤러 역할을 맡은 브로커가 장애 시, 다른 브로커가 해당 역할 맡음
  • Coordinator
    • Consumer 그룹의 Status Check
    • 파티션과 컨슈머의 매칭 및 분배 설정
    • 리밸런싱
      • 컨슈머가 컨슈머 그룹에서 빠지게 되면 매칭 되지 않은 파티션을 다른 컨슈머로 할당

데이터 삭제

  • Kakfa Producer와 Consumer는 데이터 삭제를 할 수 없다.
  • 오직 Broker만이 데이터 삭제 가능

  • Log Segment라는 파일 단위로 삭제

    • Broker에서 log.segment.bytes 또는 log.segment.ms 옵션에 값이 설정되면 세그먼트 파일이 닫힌다.
    • 닫힌 세그먼트 파일은 log.retention.bytes 또는 log.retention.ms 옵션에 설정 값이 넘으면 삭제된다.

출처

공식문서
Kafka 알아보자

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글