Apache Kafka 기본 1

태그: , ,

카테고리: , ,

출처 : 패스트캠퍼스 “Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지” 중 일부


🚫 아래 내용은 주관적인 생각이므로 사실과 다를 수 있습니다.


개요

아파치 카프카의 주요 요소들에 대해 알아본다


Topic

카프카 안에서 Message가 저장되는 장소, 논리적 요소

Topic 생성시 Partition 개수를 지정하고,
각 Partition들은 Broker들에 의해 분산되며
Segment File들로 구성됨


Partition

변경없이 누적되어 쌓이는 Commit Log,

  • Topic을 구성하는 물리적 구성요소
  • 하나의 Topic은 항상 하나 이상의 Partition으로 구성됨
  • 병렬처리(Throughput 처리량 향상)를 위해서 다수의 Partition을 사용
    • 다수의 Partition들을 Brocker들이 분산해 가져감
  • Partition 번호는 0번부터 시작해 오름차순으로 생성됨
    • 누적만 하기 때문에 Partition에 저장된 데이터는 변경 불가
  • 이벤트의 위치를 나타내는 offset이 존재
  • 각 Partition들은 서로 독립적
    • 이벤트(Message)의 순서는 하나의 Partition 내에서만 보장됨

Segment

Message(데이터)가 저장되는 실제 물리 File

  • Partition을 구성하는 물리적 구성요소
  • Segment File이 지정된 크기보다 크거나 지정된 기간보다 오래되면
    새 파일이 열리고 Message는 새로 열린 파일에 추가됨

Rolling Strategy

Segment 생성 전략으로 일정 기준을 초과하면
Segment를 새로 생성한다

  • 용량: log.segment.bytes(기본값 1기가)
  • 기간: log.roll.hours(기본값 168시간)

Partition당 오직 하나의 Segment만 활성화 되어 데이터가 쓰여진다


Broker

  • Partition에 대한 Read 및 Write를 관리하는 소프트웨어
  • Kafka Server라고도 부름
  • Topic 내의 Partition들을 분산, 배치, 유지 및 관리
  • 각각의 Broker들은 ID(숫자)로 식별됨
  • Topic의 일부 Partition들을 포함
    • Broker는 Topic 데이터의 전체가 아닌 일부분(Partition)만 가짐
  • 전체 Broker들을 Bootstrap server라고 부름
  • Client가 하나의 Broker에만 연결하면 Cluster 전체에 연결되어
    Cluster 내 Broker들의 리스트를 알게됨(장애를 대비해 전체를 전달)
    • 자신이 필요한 Topic과 Partition의 위치를 알고 연결함

Kafka Cluster

  • 여러 개의 Broker들로 구성
  • Client는 특정 Broker에 연결하면 전체 클러스터에 연결됨
  • 4대 이상의 Broker로 Cluster를 구성하길 권장(최소 3대)
  • Topic을 구성하는 Partition들은 여러 Broker 상에 분산됨
  • Topic 생성시 Kafka가 자동으로 생성된 Topic의 Partition들을
    모든 Broker에게 할당/분배해줌

댓글남기기