백엔드 개발 · 심화
Kafka Connect 클러스터를 프로덕션 환경에서 고가용성(High Availability) 및 확장성(Scalability)을 보장하도록 설계하고 운영하기 위한 방안을 설명하시오. 특히 Source/Sink 커넥터의 장애 발생 시 데이터 유실 없이 복구하는 전략에 대해 구체적으로 제시하시오.
힌트 · 분산 모드, worker 재시작 전략, offset management, Dead Letter Queue (DLQ) 활용 및 모니터링이 중요합니다.
Kafka Connect 분산 모드Offset CommitDead Letter Queue (DLQ)Replication FactorConnector 재시작 정책
모범답안
Kafka Connect 클러스터를 고가용성과 확장성 있게 운영하려면 분산 모드를 사용해야 합니다. 여러 워커 인스턴스를 실행하여 단일 실패 지점을 제거하고, 워커 재시작 시에도 작업을 이어갈 수 있도록 오프셋 관리가 중요합니다.
Source/Sink 커넥터 장애 시 데이터 유실 방지를 위해, 커넥터는 주기적으로 오프셋을 커밋해야 합니다. Kafka Connect는 이를 자동으로 관리하지만, 장애 발생 시에는 마지막으로 커밋된 오프셋부터 다시 시작하여 데이터 중복이나 누락을 최소화합니다.
추가적으로, 처리할 수 없는 메시지는 Dead Letter Queue(DLQ)로 보내어 데이터 유실을 방지하고, 이를 별도로 모니터링하여 문제를 해결합니다. 클러스터 상태, 커넥터 성능, 오프셋 커밋 상태 등을 지속적으로 모니터링하는 것도 필수적입니다. Kafka 토픽의 Replication Factor를 충분히 확보하여 Kafka 자체의 고가용성도 보장해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- Kafka의 로그 컴팩션(Log Compaction)은 무엇이며, 어떤 경우에 유용하게 사용될 수 있는지 구체적인 예시와 함께 설명해 주세요.
- 대용량 실시간 데이터 처리 시 Kafka Streams 애플리케이션의 상태 저장(stateful processing) 전략과 장애 복구(fault tolerance) 방안에 대해 설명하고, RocksDB와 같은 상태 저장소의 성능 최적화 기법을 포함하여 설계 방안을 제시하시오.
- Kafka에서 End-to-End Exactly-Once Semantics를 보장하기 위한 프로듀서, 브로커, 컨슈머 측면에서의 접근 방식과 각 구성 요소의 역할을 설명하고, 이 과정에서 발생할 수 있는 잠재적 이슈와 해결 방안을 논하시오.
- 수백 개의 토픽과 수천 개의 파티션을 가진 대규모 Kafka 클러스터에서 안정적인 성능을 유지하기 위한 브로커, 프로듀서, 컨슈머 각 계층에서의 주요 튜닝 파라미터와 그 효과에 대해 설명하시오. 특히 네트워크, 디스크 I/O 관점에서 최적화 방안을 포함하시오.
- Kafka 클러스터에 대한 End-to-End 보안(인증, 인가, 암호화)을 구현하기 위한 아키텍처를 설계하고, 각 보안 요소(SSL/TLS, SASL, ACL)의 역할과 설정 방법을 설명하시오. 또한, 보안 적용 시 성능에 미치는 영향과 최적화 방안을 논하시오.
- 두 개 이상의 데이터센터에 걸쳐 Kafka 클러스터를 운영할 때 재해 복구(Disaster Recovery, DR) 전략을 수립하는 방안에 대해 설명하시오. 특히 MirrorMaker 2.0 또는 Confluent Replicator를 활용한 액티브-패시브(Active-Passive) 또는 액티브-액티브(Active-Active) 구성 시 고려해야 할 사항과 데이터 일관성 유지 방안을 포함하시오.