패스잇
백엔드 개발 · 기초

카프카에서 '오프셋(Offset)'은 무엇이며, 컨슈머(Consumer)가 메시지를 처리하는 데 있어 어떤 의미를 가지나요?

힌트 · 오프셋은 파티션 내에서 각 메시지의 고유한 순서 번호입니다. 컨슈머는 이 오프셋을 통해 어디까지 메시지를 읽었는지 추적하고 다음 메시지를 가져옵니다.

파티션메시지 순서컨슈머 그룹커밋중복 처리 방지

모범답안

카프카에서 오프셋은 특정 파티션 내에서 메시지의 순서를 나타내는 고유한 ID입니다. 각 메시지는 파티션에 추가될 때마다 순차적으로 증가하는 오프셋 값을 할당받습니다.

컨슈머 입장에서 오프셋은 매우 중요합니다. 컨슈머는 특정 오프셋까지 메시지를 처리했다는 정보를 카프카에 '커밋'합니다. 이렇게 커밋된 오프셋은 컨슈머 그룹 내에서 해당 컨슈머가 어디까지 읽었는지 기록하는 역할을 합니다. 만약 컨슈머가 재시작되거나 다른 컨슈머가 해당 파티션을 할당받게 되면, 커밋된 오프셋부터 메시지를 다시 읽기 시작하여 메시지 처리의 연속성을 보장하고 중복 처리를 방지할 수 있습니다. 즉, 오프셋은 컨슈머가 메시지를 정확히 한 번만 처리하도록 돕는 핵심적인 요소입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 메시지 큐 (Kafka) 면접 질문

← 메시지 큐 (Kafka) 면접 질문 전체 보기