백엔드 개발 · 중급
Kafka의 ISR(In-Sync Replicas) 개념은 무엇이며, 이것이 데이터 손실 방지 및 고가용성 유지에 어떻게 기여하는지 설명해 주세요.
힌트 · ISR은 리더 파티션과 메시지를 동기화하고 있는 팔로워 복제본들의 집합입니다. 리더 장애 시 ISR 내의 팔로워 중 하나가 새로운 리더가 되어 데이터 손실 없이 고가용성을 유지합니다.
데이터 복제합의 알고리즘리더 선출데이터 유실 방지고가용성
모범답안
Kafka에서 ISR(In-Sync Replicas)은 리더 파티션과 거의 동일한 데이터를 가지고 있는 팔로워 복제본들의 집합을 의미합니다. 이들은 리더로부터 데이터를 꾸준히 복제하며, 지연 시간이 설정된 임계값 이내로 유지됩니다.
ISR은 데이터 손실 방지와 고가용성 유지에 핵심적인 역할을 합니다. 리더 파티션에 장애가 발생했을 때, ISR 내의 팔로워 중 하나가 새로운 리더로 선출됩니다. 이때, ISR에 속한 팔로워는 리더의 데이터를 거의 완벽하게 복제하고 있기 때문에 데이터 손실 없이 빠르게 리더 역할을 수행할 수 있습니다.
만약 ISR이 없다면, 모든 팔로워 중에서 리더를 선출해야 하고, 이 과정에서 데이터가 유실될 가능성이 높아집니다. ISR은 데이터 일관성을 보장하고, 장애 발생 시에도 서비스 중단을 최소화하여 고가용성을 유지하는 데 기여합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- Kafka의 Consumer Group이 무엇이며, 이를 통해 메시지 소비의 확장성과 고가용성을 어떻게 확보하는지 설명해 주세요.
- Kafka 컨슈머가 메시지를 어디까지 읽었는지 추적하는 오프셋(Offset)은 무엇이며, 컨슈머 그룹 내에서 오프셋이 어떻게 관리되는지 설명해 주세요.
- Kafka가 메시지의 내구성(Durability)을 보장하기 위해 사용하는 메커니즘들을 설명해 주세요.
- Kafka 프로듀서가 메시지를 브로커로 전송할 때 발생할 수 있는 At-Most-Once, At-Least-Once, Exactly-Once 딜리버리 시맨틱스 각각의 특징과 구현 방법을 설명해 주세요.
- Kafka의 로그 컴팩션(Log Compaction)은 무엇이며, 어떤 경우에 유용하게 사용될 수 있는지 구체적인 예시와 함께 설명해 주세요.
- 대용량 실시간 데이터 처리 시 Kafka Streams 애플리케이션의 상태 저장(stateful processing) 전략과 장애 복구(fault tolerance) 방안에 대해 설명하고, RocksDB와 같은 상태 저장소의 성능 최적화 기법을 포함하여 설계 방안을 제시하시오.