Kafka(카프카) 클러스터와 브로커의 동작 이해하기

2023. 12. 27. 01:03·Apache Kafka
반응형
 
 
 

이번 포스트에서는 Kafka의 클러스터부터 토픽까지의 작동 원리를 알아보자

📌 서론

이번 포스트에서는 Kafka의 주요 구성 요소인 클러스터, 브로커, 토픽, 파티션, 세그먼트에 대해 자세히 살펴보자. 또한 Kafka 클러스터 내에서 브로커가 어떻게 동작하는지, 데이터의 복제 및 분산 처리 방법에 대해서도 알아보자. Kafka를 이해하는 것은 데이터 스트리밍과 실시간 데이터 처리의 세계로 들어가는 첫걸음이다. Kafka의 구조를 확실히 이해하면 더 복잡한 데이터 파이프라인을 구축하고 관리하는 데 도움이 될 것이다.

 

1. Kafka의 구조 및 컴포넌트

클러스터와 브로커

  • Kafka 클러스터는 여러 브로커로 구성되어 있다. 각 브로커는 서로 연결되어 있고, 한 브로커가 실패해도 다른 브로커가 그 역할을 대신해 고가용성을 보장한다.

 

토픽, 파티션, 세그먼트

  • 토픽(Topic): 메시지는 토픽에 따라 저장된다. 각 토픽은 하나 이상의 파티션에 분산 저장되어 있다.
  • 파티션(Partition): 파티션은 메시지를 효율적으로 관리하고 분산시키는 역할을 한다. 예를 들어, 'orders' 토픽의 메시지가 Partition 0에 저장되면, 이 파티션은 특정 브로커(예: Broker 1)에 속한다.
  • 세그먼트(Segment): 각 파티션 내의 메시지는 세그먼트라는 더 작은 단위로 관리되어, 세그먼트가 일정 크기에 도달하면 새로운 세그먼트가 생성된다.

 

카프카의 구조
카프카의 구조

 

2. Kafka 클러스터 내의 브로커 동작방식

파티션 복제 및 ISR

  • Kafka는 파티션을 다른 브로커에도 복제해 데이터의 안정성을 높인다.
  • ISR은 현재 리더와 동기화된 상태의 팔로워 브로커들을 말한다. 리더가 실패하면 ISR 중 하나가 새 리더로 승격된다.

 

브로커의 역할

  • 각 브로커는 독립적으로 동작하고, 하나의 브로커가 실패해도 전체 클러스터에 큰 영향을 미치지 않는다.
  • 브로커들은 토픽 내의 파티션 데이터를 서로 복제하며, 리더 파티션은 읽기 및 쓰기를 담당하고, 팔로워 파티션은 리더의 데이터를 복제한다.

 

메시지 라우팅과 상호작용

  • 프로듀서는 데이터를 브로커에 전송하고, 이 데이터는 Kafka 설정에 따라 특정 파티션에 저장된다. 컨슈머는 토픽을 구독하고, 마지막으로 읽은 메시지 위치를 오프셋으로 관리한다.

 

스케일링과 장애 복구

  • 클러스터는 브로커의 추가나 제거에 유연하게 대응하고, 자동으로 장애를 복구할 수 있다.

브로커 내부의 동작 방식
브로커 내부의 동작 방식

 

 

 

카프카 파티션을 쉽게 이해해보자👇🏻👇🏻

 

Kafka(카프카) 파티션(partition) 쉽게 이해하기

Kafka(카프카) Partition(파티션)의 개념 및 동작 원리를 알아보자 📌 서론 이번 포스트에서는 Kafka의 핵심 구성 요소 중 하나인 '파티션'에 대해 집중적으로 살펴볼 예정이다. 파티션은 Kafka에서 데

curiousjinan.tistory.com

 

반응형

'Apache Kafka' 카테고리의 다른 글

Kafka(카프카) Producer(프로듀서)와 Consumer(컨슈머)의 동작 원리와 고가용성  (1) 2023.12.27
Kafka(카프카) 파티션(partition) 쉽게 이해하기  (5) 2023.12.27
Kafka(카프카)의 기본 구조 이해하기 (클러스터, 브로커, 토픽, 파티션, 세그먼트)  (2) 2023.12.27
Kafka(카프카)란 무엇인가  (2) 2023.12.27
SpringBoot와 Kafka(1) - 기본설명  (0) 2023.10.19
'Apache Kafka' 카테고리의 다른 글
  • Kafka(카프카) Producer(프로듀서)와 Consumer(컨슈머)의 동작 원리와 고가용성
  • Kafka(카프카) 파티션(partition) 쉽게 이해하기
  • Kafka(카프카)의 기본 구조 이해하기 (클러스터, 브로커, 토픽, 파티션, 세그먼트)
  • Kafka(카프카)란 무엇인가
Stark97
Stark97
dig04059@gmail.com 링크드인 소통도 환영합니다!
  • Stark97
    오늘도 개발중입니다
    Stark97
  • 전체
    오늘
    어제
    • 분류 전체보기 (257)
      • 개발지식 (20)
        • 스레드(Thread) (8)
        • WEB, DB, GIT (3)
        • 디자인패턴 (8)
      • AI (7)
      • JAVA (21)
      • Spring (88)
        • Spring 기초 지식 (35)
        • Spring 설정 (6)
        • JPA (7)
        • Spring Security (17)
        • Spring에서 Java 활용하기 (8)
        • 테스트 코드 (15)
      • 아키텍처 (6)
      • MSA (15)
      • DDD (13)
      • gRPC (9)
      • Apache Kafka (19)
      • DevOps (23)
        • nGrinder (4)
        • Docker (1)
        • k8s (1)
        • 테라폼(Terraform) (12)
      • AWS (32)
        • ECS, ECR (14)
        • EC2 (2)
        • CodePipeline, CICD (8)
        • SNS, SQS (5)
        • RDS (2)
      • notion&obsidian (3)
      • 채팅 서비스 (1)
      • 팀 Pulse (0)
  • 링크

    • notion기록
    • 깃허브
    • 링크드인
  • hELLO· Designed By정상우.v4.10.0
Stark97
Kafka(카프카) 클러스터와 브로커의 동작 이해하기
상단으로

티스토리툴바