백엔드 개발 · 중급
Kafka 프로듀서가 메시지를 브로커로 전송할 때 발생할 수 있는 At-Most-Once, At-Least-Once, Exactly-Once 딜리버리 시맨틱스 각각의 특징과 구현 방법을 설명해 주세요.
힌트 · 각 시맨틱스는 메시지 전송의 신뢰성 수준을 나타냅니다. At-Least-Once는 ACK와 재시도를, Exactly-Once는 멱등성 프로듀서와 트랜잭션을 통해 구현됩니다.
멱등성트랜잭션ACK (Acknowledge)중복 제거재시도
모범답안
면접관님, Kafka 프로듀서의 메시지 딜리버리 시맨틱스에 대해 설명드리겠습니다.
먼저 At-Most-Once는 메시지가 최대 한 번 전달되는 것을 보장합니다. 프로듀서가 메시지를 보내고 ACK를 받지 못하면 재시도하지 않습니다. 메시지 유실 가능성이 있지만, 중복은 발생하지 않습니다.
At-Least-Once는 최소 한 번 전달을 보장합니다. 프로듀서가 ACK를 받지 못하면 재시도합니다. 메시지 유실은 없지만, 중복 발생 가능성이 있습니다. Kafka의 기본 설정입니다.
Exactly-Once는 정확히 한 번 전달을 보장하며, 가장 강력한 시맨틱스입니다. 이를 위해 Kafka는 멱등성 프로듀서와 트랜잭션을 제공합니다. 멱등성 프로듀서는 동일한 메시지를 여러 번 보내더라도 브로커가 중복을 제거하여 정확히 한 번만 처리하도록 합니다. 트랜잭션은 여러 메시지를 하나의 원자적인 작업으로 묶어, 모두 성공하거나 모두 실패하도록 보장합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- Kafka 컨슈머가 메시지를 어디까지 읽었는지 추적하는 오프셋(Offset)은 무엇이며, 컨슈머 그룹 내에서 오프셋이 어떻게 관리되는지 설명해 주세요.
- Kafka가 메시지의 내구성(Durability)을 보장하기 위해 사용하는 메커니즘들을 설명해 주세요.
- Kafka의 ISR(In-Sync Replicas) 개념은 무엇이며, 이것이 데이터 손실 방지 및 고가용성 유지에 어떻게 기여하는지 설명해 주세요.
- Kafka의 로그 컴팩션(Log Compaction)은 무엇이며, 어떤 경우에 유용하게 사용될 수 있는지 구체적인 예시와 함께 설명해 주세요.
- 대용량 실시간 데이터 처리 시 Kafka Streams 애플리케이션의 상태 저장(stateful processing) 전략과 장애 복구(fault tolerance) 방안에 대해 설명하고, RocksDB와 같은 상태 저장소의 성능 최적화 기법을 포함하여 설계 방안을 제시하시오.
- Kafka에서 End-to-End Exactly-Once Semantics를 보장하기 위한 프로듀서, 브로커, 컨슈머 측면에서의 접근 방식과 각 구성 요소의 역할을 설명하고, 이 과정에서 발생할 수 있는 잠재적 이슈와 해결 방안을 논하시오.