본문 바로가기

Kafka

[Kafka] kafka 내부 구조 (2)

분산 메시징 시스템인 Kafka 의 구조를 들여다보자.

 

 

 


 

 

 

Cluster

클러스터는 브로커(Kafka 서버)의 집합체를 말한다. 클러스터를 구분하는 각각의 브로커는 카프카 서버로 불린다.

Broker - 메시지 수신 및 저장

  • 이벤트 스트리밍 플랫폼
  • 밑에서 추가 설명

 

Topic - 데이터 분류 단위

  1. 브로커에서 데이터를 관리할 때 기준이 되는 단위다.
  2. 여러 파티션으로 나뉘어서 데이터를 병렬처리할 수 있다.

 

  • 리더 파티션 Leader Partition
    • Producer, Consumer 와 직접 통신하는 파티션
    • 읽기, 쓰기 연산
  • 팔로워 파티션 Follower Partition
    • 데이터 보관
    • 리더 파티션에서 전달된 데이터를 복제하여 저장
    • 리더 파티션이 속한 브로커에서 장애 발생 시, 팔로워 파티션이 리더 파티션 지위를 가질 수 있다.(리밸런싱)

 

Broker

  • 브로커 내부에 여러 토픽이 생성될 수 있다.
  • 토픽들에 의해 생성된 파티션이 보관하는 데이터를 분산 저장한다
  • 장애 발생 시 안전하게 데이터를 사용하도록 보조하는 역할을 한다.

 

 

Zookeeper

카프카 브로커의 동작 상태를 확인하고 Consumer 와 Producer 에게 전달한다.

 

카프카 분산 처리 시스템 서버에 대한 메타 데이터를 관리하는 시스템을 말한다. 클러스터를 구성하는 브로커들끼리 공유되는 데이터를 유지하거나 특별한 조율을 하기 위해서 사용된다.

Kafka 를 띄우기 위해서 반드시 Zookeeper 가 실행되어야 한다.

 

  1. Kafka 클러스터의 일관된 상태 관리
    • 설정관리 Configuration Management
      • 클러스터의 설정 정보를 최신으로 유지
    • 클러스터 관리 Cluster Management
      • 클러스터 서버(브로커) 추가 혹은 제외 시 클러스터 안 서버(브로커) 에게 공유
  2. 브로커의 실패 및 복구 감지
  3. Kafka 브로커의 동작 상태를 파악하고 상태 정보를 Producer, Consumer 에게 전달

⇒ 한정된 리소스 내에서 작동하여 대량 데이터 처리가 어려울 수 있다.

'Kafka' 카테고리의 다른 글