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에 의해 소비될 수 있다.
1-3. 그림 설명
- Producer: 메시지를 생성하여 Leader Partition에 전달한다. (단계 1)
- Leader Partition: 메시지를 받아 저장하고, ISR에 있는 Follower Partition들에게 복제한다. (단계 2 → 3, 단계 4)
- Follower Partitions: Leader Partition으로부터 메시지를 복제받는다. (단계 2 → 3)
- ISR (In-Sync Replicas): 현재 Leader와 동기화되고 있는 Follower Partition들의 집합이다. (단계 4)
- Consumer: Leader Partition에서 메시지를 소비한다. (단계 5)
2. Replication Factor (Topic 데이터의 복제본 설정)
2-1. 정의:
- Replication Factor는 특정 Topic의 데이터가 몇 개의 복제본을 가질 것인지 설정하는 값이다.
2-2. 동작 방식:
- Replication Factor가 3이라면, 하나의 Leader Partition과 두 개의 Follower Partition이 생성된다.
- 이렇게 하면 하나 또는 두 개의 노드가 실패해도 데이터 손실이 없다.
- 높은 Replication Factor 설정은 데이터의 안정성을 높이지만, 더 많은 저장 공간과 네트워크 트래픽을 사용한다.
2-3. 동작 과정
- Producer: 메시지를 생성하고 Leader Partition에 전송한다. (단계 1)
- Leader Partition: 메시지를 받아 Follower Partition에 복제한다. (단계 2 → 3)
- Follower Partition 1 & 2: Leader Partition으로부터 메시지를 복제한다. Replication Factor가 3이므로, 하나의 Leader와 두 개의 Follower가 있다. (단계 2 → 3)
- 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와 동기화를 시작한다.
3-3. 동작 과정
- Leader Partition: 현재 Leader Partition이다.
- Follower Partition 1 & 2: Leader Partition과 동기화되고 있는 Follower Partition들이다.
- 동기화: Leader와 Follower Partition들이 데이터를 동기화한다.
- 새 Leader 선출: Leader Partition이 실패할 경우, 새로운 Leader가 선출된다. 이 과정은 빨간색 점선으로 표시되어 있다.
4. Fault Tolerance (내결함성)
4-1. 정의:
- Fault Tolerance는 시스템이 일부 컴포넌트가 실패하더라도 전체 시스템의 작동에 문제가 없도록 하는 능력이다.
4-2. 동작 방식:
- Kafka는 Replication과 Leader Election을 통해 높은 수준의 Fault Tolerance를 제공한다.
- 이를 통해, 일부 노드가 실패하더라도 Kafka 클러스터는 계속해서 정상적으로 작동할 수 있다.
2023.10.19 - [Apache Kafka] - Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편)
반응형
'유용한 개발지식 > Apache Kafka' 카테고리의 다른 글
Kafka(카프카) 클러스터와 브로커의 동작 이해하기 (1) | 2023.12.27 |
---|---|
Kafka(카프카)의 기본 구조 이해하기 (클러스터, 브로커, 토픽, 파티션, 세그먼트) (1) | 2023.12.27 |
Kafka(카프카)란 무엇인가 (2) | 2023.12.27 |
SpringBoot와 Kafka(1) - 기본설명 (0) | 2023.10.19 |
Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편) (0) | 2023.10.19 |