백엔드 개발 · 중급
Kafka의 Consumer Group이 무엇이며, 이를 통해 메시지 소비의 확장성과 고가용성을 어떻게 확보하는지 설명해 주세요.
힌트 · 컨슈머 그룹은 여러 컨슈머 인스턴스가 하나의 논리적인 컨슈머로 동작하게 하여 파티션을 분담 처리합니다. 이를 통해 메시지 소비의 병렬성과 장애 발생 시 재분배를 통한 고가용성을 제공합니다.
컨슈머 그룹파티션병렬 처리오프셋고가용성
모범답안
Kafka에서 Consumer Group은 여러 컨슈머 인스턴스를 묶어 하나의 논리적인 컨슈머처럼 동작하게 하는 메커니즘입니다.
각 컨슈머 그룹은 토픽의 파티션을 나누어 소비합니다. 예를 들어, 토픽에 3개의 파티션이 있고 컨슈머 그룹에 3개의 컨슈머가 있다면, 각 컨슈머는 하나의 파티션을 전담하여 처리합니다. 이렇게 파티션을 분담하여 처리함으로써 메시지 소비의 병렬성을 높여 확장성을 확보할 수 있습니다.
만약 컨슈머 중 하나가 다운되면, 해당 컨슈머가 담당하던 파티션은 다른 컨슈머에게 자동으로 재할당됩니다. 이를 통해 장애 발생 시에도 메시지 소비가 중단되지 않고 지속적으로 이루어지도록 하여 고가용성을 확보합니다. 각 컨슈머는 자신이 소비한 메시지의 오프셋을 Kafka에 저장하여, 장애 복구 시 중복 소비 없이 이어서 소비할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- 카프카의 '프로듀서(Producer)'와 '컨슈머(Consumer)'의 역할은 각각 무엇인지 설명해주세요.
- 카프카의 '브로커(Broker)'는 무엇이며, 카프카 클러스터 내에서 어떤 기능을 담당하나요?
- Kafka에서 토픽을 여러 파티션으로 나누는 주된 이유와 이로 인해 얻을 수 있는 이점을 설명해 주세요.
- Kafka 컨슈머가 메시지를 어디까지 읽었는지 추적하는 오프셋(Offset)은 무엇이며, 컨슈머 그룹 내에서 오프셋이 어떻게 관리되는지 설명해 주세요.
- Kafka가 메시지의 내구성(Durability)을 보장하기 위해 사용하는 메커니즘들을 설명해 주세요.
- Kafka의 ISR(In-Sync Replicas) 개념은 무엇이며, 이것이 데이터 손실 방지 및 고가용성 유지에 어떻게 기여하는지 설명해 주세요.