Apache Kafka 복제(Replication)와 장애 허용(Fault Tolerance) 메커니즘 (9편)

2023. 10. 19. 16:36·Apache Kafka
반응형

Kafka의 Replication과 Fault Tolerance는 데이터의 안정성과 가용성을 보장하는 중요한 요소이다. 이러한 개념들은 Kafka 클러스터가 장애 상황에서도 데이터 손실 없이 정상적으로 작동할 수 있게 해준다.

 

1. ISR (In-Sync Replicas)


1-1. 정의:

  • ISR은 Leader Partition에 복제될 수 있는 Follower Partition의 집합이다.
  • 즉, ISR은 현재 Leader와 동기화되고 있는 Follower Partition들을 의미한다.

1-2. 동작 방식:

  • Leader Partition이 새로운 메시지를 받으면, ISR 내의 Follower Partition들도 이 메시지를 복제한다.
  • 모든 Follower가 메시지를 복제하면, 해당 메시지는 'Commit'된 것으로 간주된다.
  • Commit된 메시지만이 Consumer에 의해 소비될 수 있다.

ISR(In-Sync-Replicas)
ISR(In-Sync-Replicas)

1-3. 그림 설명

  1. Producer: 메시지를 생성하여 Leader Partition에 전달한다. (단계 1)
  2. Leader Partition: 메시지를 받아 저장하고, ISR에 있는 Follower Partition들에게 복제한다. (단계 2 → 3, 단계 4)
  3. Follower Partitions: Leader Partition으로부터 메시지를 복제받는다. (단계 2 → 3)
  4. ISR (In-Sync Replicas): 현재 Leader와 동기화되고 있는 Follower Partition들의 집합이다. (단계 4)
  5. Consumer: Leader Partition에서 메시지를 소비한다. (단계 5)


 

2. Replication Factor (Topic 데이터의 복제본 설정)


2-1. 정의:

  • Replication Factor는 특정 Topic의 데이터가 몇 개의 복제본을 가질 것인지 설정하는 값이다.

2-2. 동작 방식:

  • Replication Factor가 3이라면, 하나의 Leader Partition과 두 개의 Follower Partition이 생성된다.
  • 이렇게 하면 하나 또는 두 개의 노드가 실패해도 데이터 손실이 없다.
  • 높은 Replication Factor 설정은 데이터의 안정성을 높이지만, 더 많은 저장 공간과 네트워크 트래픽을 사용한다.

Replication Factor
Replication Factor

2-3. 동작 과정

  1. Producer: 메시지를 생성하고 Leader Partition에 전송한다. (단계 1)
  2. Leader Partition: 메시지를 받아 Follower Partition에 복제한다. (단계 2 → 3)
  3. Follower Partition 1 & 2: Leader Partition으로부터 메시지를 복제한다. Replication Factor가 3이므로, 하나의 Leader와 두 개의 Follower가 있다. (단계 2 → 3)
  4. Consumer: Leader Partition에서 메시지를 소비한다. (단계 4)


 

3. Leader Election (파티션 리더 선출)


3-1. 정의:

  • Leader Election은 현재 Leader Partition이 실패할 경우, ISR 내의 Follower Partition 중 하나가 새로운 Leader로 선출되는 과정이다.

3-2. 동작 방식:

  • Leader Partition이 실패하면, Kafka는 ISR 목록에서 새로운 Leader를 선출한다.
  • 새 Leader가 선출되면, 모든 Follower Partition들은 이 새 Leader와 동기화를 시작한다.

Kafka Leader Election
Kafka Leader Election

3-3. 동작 과정

  1. Leader Partition: 현재 Leader Partition이다.
  2. Follower Partition 1 & 2: Leader Partition과 동기화되고 있는 Follower Partition들이다.
  3. 동기화: Leader와 Follower Partition들이 데이터를 동기화한다.
  4. 새 Leader 선출: Leader Partition이 실패할 경우, 새로운 Leader가 선출된다. 이 과정은 빨간색 점선으로 표시되어 있다.


 

4. Fault Tolerance (내결함성)


4-1. 정의:

  • Fault Tolerance는 시스템이 일부 컴포넌트가 실패하더라도 전체 시스템의 작동에 문제가 없도록 하는 능력이다.

4-2. 동작 방식:

  • Kafka는 Replication과 Leader Election을 통해 높은 수준의 Fault Tolerance를 제공한다.
  • 이를 통해, 일부 노드가 실패하더라도 Kafka 클러스터는 계속해서 정상적으로 작동할 수 있다.

Kafka Fault Tolerance
Kafka Fault Tolerance

 

 


 

 

 

2023.10.19 - [Apache Kafka] - Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편)

 

Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편)

카프카의 Offset과 Commit의 작동 원리를 알아보자 1. Kafka 2.x 버전에서의 Offset과 Commit 이해하기 1-1. 구조 설명 Broker: Kafka 클러스터 내의 브로커다(Kafka 인스턴스). 파티션을 관리한다. Partition: 메시지

curiousjinan.tistory.com

 

반응형

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

Kafka(카프카) 클러스터와 브로커의 동작 이해하기  (1) 2023.12.27
Kafka(카프카)의 기본 구조 이해하기 (클러스터, 브로커, 토픽, 파티션, 세그먼트)  (2) 2023.12.27
Kafka(카프카)란 무엇인가  (2) 2023.12.27
SpringBoot와 Kafka(1) - 기본설명  (0) 2023.10.19
Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편)  (0) 2023.10.19
'Apache Kafka' 카테고리의 다른 글
  • Kafka(카프카)의 기본 구조 이해하기 (클러스터, 브로커, 토픽, 파티션, 세그먼트)
  • Kafka(카프카)란 무엇인가
  • SpringBoot와 Kafka(1) - 기본설명
  • Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편)
Stark97
Stark97
소통 및 문의: dig04059@gmail.com (편하게 연락주세요!) 링크드인 소통이나 커피챗도 환영합니다!
  • Stark97
    오늘도 개발중입니다
    Stark97
  • 전체
    오늘
    어제
    • 분류 전체보기 (253) N
      • 개발지식 (20)
        • 스레드(Thread) (8)
        • WEB, DB, GIT (3)
        • 디자인패턴 (8)
      • AI (4) N
      • JAVA (21)
      • Spring (88)
        • Spring 기초 지식 (35)
        • Spring 설정 (6)
        • JPA (7)
        • Spring Security (17)
        • Spring에서 Java 활용하기 (8)
        • 테스트 코드 (15)
      • 아키텍처 (6)
      • MSA (15)
      • DDD (12)
      • 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
Apache Kafka 복제(Replication)와 장애 허용(Fault Tolerance) 메커니즘 (9편)
상단으로

티스토리툴바