Replication
- 고가용성을 위해 파티션을 복제해두는 걸 의미한다.
리더 파티션
은 원본을 의미하며,팔로워 파티션
은 복제본을 의미한다.- 읽기와 쓰기는 모두
리더 파티션
을 통해서만 이루어진다. 즉, 팔로워 파티션은 그저 보험용(?) 복제본일 뿐이다. - Replication fator: 기본값은 1이며, 몇개의 리플리케이션을 할지를 의미하는 옵션이다. Replication fator를 곱한 만큼 저장소 크기가 더 필요하다.
ISR
In-Sync Replicas
. 리더와 싱크가 완전히 맞는 리플리카 그룹이다. 리더 파티션이 될 수 있는 후보의 의미를 가진다고 보면 된다.- 싱크가 완전히 맞는 팔로워만 신뢰하겠다는 컨셉이다.
만약 ISR에 아무 Replica가 남지 않았다면?
극한 상황인 것인데, 두 옵션 중 하나를 고를 수 있다.
-
unclean.leader.election.enable=false
- 마지막까지 살아있던 Leader가 살아나기를 기다린다.
- 장애 시간이 길어지는 걸 감수하고 정합성을 우선시할 때 사용한다.
-
unclean.leader.election.enable=true
- 먼저 복구되는 파티션을 Leader로 선정한다.
- 데이터가 유실되더라도 장애 시간 단축이 중요할 때 사용한다.
- 여기서 데이터가 유실되는 양은, 그 새로 선출된 Leader가 죽기 전에 기존 Leader와 차이났던 만큼이다. 새로 선출된 Leader가 가지고 있는 데이터가 새로운 기준이 되어버리기 때문이다.
[참고자료]
고승범 외(2018), 카프카: 데이터 플랫폼의 최강자, 책만.
https://level-muscle-c3a.notion.site/Kafka-665a8d1344c6496a8cd9770365708c17