Database

아파치 카프카(Apache Kafka) - 브로커

TedDev 2025. 1. 3. 15:07
728x90

Apache Kafka에서 브로커(Broker), 복제(Replication), ISR(In-Sync Replicas)는 데이터의 안정성과 가용성을 보장하기 위한 중요한 구성 요소이다.

 

1. 브로커(Broker)

브로커는 카프카 클러스터에서 데이터를 저장하고 관리하는 개별 서버(노드)이다.

  • 역할
    • 데이터를 저장 및 제공
    • 프로듀서로부터 데이터를 받아 파티션에 저장
    • 컨슈머 요청에 따라 데이터를 전달
    • 클러스터 내에서 파티션 리더와 복제를 관리
  • 특징
    • 하나의 카프카 클러스터는 여러 브로커로 구성된다.
    • 각 브로커는 고유 ID를 가지고 있다.
    • 데이터의 파티션을 분산 저장하여 확장성과 병렬 처리 성능을 높인다.

브로커의 주요 구성 요소

  1. 리더(Leader) : 특정 파티션의 읽기/쓰기 요청을 처리하는 주 노드
  2. 팔로워(Follower) : 리더의 데이터를 복제(replication)하여 장애 복구에 대비

 

2. 복제(Replication)

복제는 데이터 안정성내결함성을 보장하기 위해 동일한 데이터를 여러 브로커에 저장하는 방식이다.

  • 복제 계수(Replication Factor)
    • 각 파티션은 여러 복제본(replica)을 가질 수 있다.
    • 예를 들어, 복제 계수가 3이면 3개의 브로커에 데이터가 복제된다.
    • 복제 계수는 파티션별로 설정 가능하다.
  • 역할
    • 하나의 복제본은 리더로 작동하고 나머지는 팔로워로 작동
    • 리더가 장애가 발생하면 클러스터가 팔로워 중 하나를 새로운 리더로 승격

복제 시 고려 사항

  • 복제 계수는 클러스터의 브로커 수를 초과할 수 없다.
  • 최소 2 이상의 복제 계수를 사용하는 것이 데이터 안정성 측면에서 권장된다.

 

3. ISR(In-Sync Replicas)

ISR(In-Sync Replicas)은 리더와 동기화된 복제본 집합을 말한다.

  • 특징
    • ISR은 리더와 동일한 데이터를 가진 복제본만 포함
    • 클러스터는 ISR 목록을 모니터링하여 복제본 상태를 관리
  • 역할
    • 데이터의 안정성과 가용성을 유지
    • 데이터가 모든 ISR에 기록되었을 때만 "성공"으로 간주(ACK 설정에 따라 다름)

ISR 동작 방식

  1. 리더는 데이터를 받으면 ISR에 포함된 모든 복제본으로 데이터를 전송
  2. ISR 내 복제본은 데이터를 리더로부터 복제한 후 이를 확인(ACK)한다.
  3. 모든 ISR 복제본이 데이터를 확인하면 메시지는 커밋(commit) 상태로 전환된다.

ISR 구성의 동적 관리

  • 팔로워가 리더와 일정 시간 동안 동기화를 유지하지 못하면 ISR에서 제외
  • 다시 동기화되면 ISR에 재포함

 

장애 복구

  • 리더가 다운되면 클러스터는 ISR 내 다른 복제본 중 하나를 새로운 리더로 승격
  • ISR을 통해 리더 복구가 빠르게 이루어져 데이터 손실 가능성을 최소화

 

복제와 ACK

카프카는 데이터 쓰기의 안정성을 조절하기 위해 ACK 설정을 제공한다.

  1. acks=0 : 프로듀서는 데이터를 브로커에 전송한 직후 확인 없이 반환
  2. acks=1 : 리더만 데이터를 수신하면 프로듀서에 성공 응답을 보냄
  3. acks=all : ISR 내 모든 복제본이 데이터를 수신해야 성공 응답을 보냄

 

복제와 ISR의 시각화

토픽: user-logs

  • 파티션 수: 3
  • 복제 계수: 2
파티션 리더 팔로워 ISR
P0 Broker 1 Broker 2 Broker 1, Broker 2
P1 Broker 2 Broker 3 Broker 2, Broker 3
P2 Broker 3 Broker 1 Broker 3, Broker 1
  • 만약 Broker 1이 다운되면:
    • P0의 새로운 리더: Broker 2
    • P2의 새로운 리더: Broker 3

 

복제와 ISR의 장점

  1. 데이터 안정성
    • 리더 장애 시에도 팔로워 데이터를 이용하여 복구 가능
  2. 높은 가용성
    • 클러스터 내의 다른 브로커가 요청을 처리하도록 빠르게 전환
  3. 확장성
    • 복제를 통해 높은 읽기 성능과 확장성을 제공

 

정리

  • 브로커는 데이터를 저장하고 관리하는 서버
  • 복제는 데이터 안정성을 위해 데이터를 여러 브로커에 복사
  • ISR은 리더와 동기화된 복제본 집합으로, 데이터 쓰기 성공 여부를 판단하는 기준
반응형