Kafka Replication은 Kafka에서 데이터의 고가용성을 보장하기 위한 방법으로 각 토픽의 파티션(Partition)을 복제를 통해 클러스터 내의 여러 브로커에 중복 저장하는 것이다.
Kafka 브로커가 장애가 생기더라도 데이터 손실을 최소화하고, 클러스터의 가용성을 유지할 수 있다.
Replication Factor
Replication Factor는 각 파티션의 데이터를 몇 개의 복제본으로 저장할지 결정하는 값이다.
예를 들어, 파티션(Partition)이 1개, Replication Factor가 2이면, 원본인 리더 파티션 1개와 복제본인 팔로우 파티션이 1개 존재한다.
Replication Factor는 브로커의 수 보다 클 수 없다. Replication이 많아지면 브로커의 리소스 사용량도 증가하게 됩니다. 따라서 데이터 양과 저장 기간(Retention Period)을 고려하여 Replication Factor를 설정하는 것이 중요합니다. 일반적으로 브로커가 3대일 경우, Replication Factor를 3으로 설정하는 것이 권장됩니다.
ISR (In Sync Replica)
ISR(In Sync Replica)은 리더 파티션과 동기화된 팔로워 파티션들의 그룹을 의미합니다.
ISR에 포함된 팔로워 파티션들은 리더 파티션과 동일한 데이터를 유지하고 있습니다. 리더 파티션에 장애가 발생하면, ISR 내에서 동기화된 팔로워 중 하나가 새로운 리더 파티션으로 승격됩니다. 이로 인해 Kafka는 장애 발생 시에도 데이터 일관성과 가용성을 유지할 수 있습니다.
ISR 그룹에 속하지 않는 팔로워는 리더와 동기화되지 않은 상태이므로, 데이터 복구를 위해 ISR에 포함될 때까지 기다려야 합니다. 이로 인해 ISR 그룹의 상태는 Kafka 클러스터의 복구 성능에 중요한 역할을 하고 Kafka 브로커가 장애가 생기더라도 데이터 손실을 최소화하고, 클러스터의 가용성을 유지할 수 있다.
'Kafka' 카테고리의 다른 글
[Apache Kafka] 카프카란 무엇인가? (0) | 2024.09.18 |
---|