패스잇
백엔드 개발 · 중급

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) 면접 질문 전체 보기