Kafka ISR
Kafka에서 ISR(In-Sync Replicas)는 분산 메시지 스트리밍 플랫폼인 Apache Kafka의 핵심 개념 중 하나입니다. Kafka는 고가용성과 데이터 내구성을 보장하기 위해 데이터를 여러 브로커(서버)에 걸쳐 복제합니다. 이 때,** ISR은 리더 파티션에 대해 실시간으로 데이터를 복제하며 동기화 상태를 유지하는 팔로워 파티션들의 집합**을 말합니다.
Kafka의 복제 메커니즘
- 리더 파티션: Kafka의 각 파티션은 리더와 하나 이상의 팔로워로 구성됩니다. 모든 읽기와 쓰기 요청은 리더를 통해 처리되며, 리더는 이러한 변경 사항을 팔로워에게 복제합니다.
- 팔로워 파티션: 리더로부터 데이터를 복제받아 동기화를 유지하는 역할을 합니다. 팔로워 중 일부는 리더와의 동기화 상태를 유지하며, 이들을 ISR이라고 합니다.
ISR의 중요성
- 데이터 내구성과 가용성: ISR 메커니즘을 통해 Kafka는 리더가 실패할 경우 다른 ISR 멤버를 새 리더로 승격시켜 서비스의 중단 없이 데이터의 가용성과 내구성을 보장합니다.
- 일관성 유지: ISR에 속한 모든 레플리카는 리더와 동일한 데이터 상태를 유지합니다. 이는 Kafka 클러스터 내에서 데이터 일관성을 유지하는 데 중요합니다.
ISR 관리
- Kafka는 min.insync.replicas 설정을 통해 ISR에 있어야 하는 최소 레플리카 수를 지정할 수 있습니다. 이는 데이터를 안전하게 유지하기 위한 내구성의 수준을 설정하는 데 사용됩니다.
- 리더가 팔로워와의 동기화를 잃어버린 경우, 해당 팔로워는 ISR에서 제외됩니다. 팔로워가 다시 동기화 상태에 도달하면 ISR에 다시 포함될 수 있습니다.
Kafka의 ISR 메커니즘은 높은 가용성과 일관된 데이터 복제를 보장하기 위한 중요한 기능입니다. 이는 Kafka가 대규모 데이터를 처리하는 분산 시스템에서 널리 사용되는 이유 중 하나입니다.