백엔드 개발 · 중급
Kafka에서 토픽을 여러 파티션으로 나누는 주된 이유와 이로 인해 얻을 수 있는 이점을 설명해 주세요.
힌트 · 파티셔닝은 메시지 처리의 병렬성을 높여 처리량 증대와 데이터 분산을 가능하게 합니다. 이를 통해 컨슈머 그룹의 확장성을 확보할 수 있습니다.
병렬 처리처리량 향상확장성분산 처리로드 밸런싱
모범답안
Kafka에서 토픽을 여러 파티션으로 나누는 주된 이유는 병렬 처리 능력을 극대화하기 위해서입니다. 각 파티션은 독립적으로 처리될 수 있기 때문에, 여러 컨슈머가 동시에 메시지를 처리하여 전체 처리량을 향상시킬 수 있습니다.
또한, 파티셔닝은 데이터를 여러 브로커에 분산시켜 저장함으로써 데이터의 가용성과 내구성을 높입니다. 컨슈머 그룹을 확장할 때, 각 컨슈머가 특정 파티션을 담당하도록 설정하여 로드 밸런싱을 구현하고 시스템의 확장성을 확보할 수 있습니다. 즉, 더 많은 메시지를 더 빠르게 처리할 수 있도록 해줍니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- 카프카에서 '오프셋(Offset)'은 무엇이며, 컨슈머(Consumer)가 메시지를 처리하는 데 있어 어떤 의미를 가지나요?
- 카프카의 '프로듀서(Producer)'와 '컨슈머(Consumer)'의 역할은 각각 무엇인지 설명해주세요.
- 카프카의 '브로커(Broker)'는 무엇이며, 카프카 클러스터 내에서 어떤 기능을 담당하나요?
- Kafka의 Consumer Group이 무엇이며, 이를 통해 메시지 소비의 확장성과 고가용성을 어떻게 확보하는지 설명해 주세요.
- Kafka 컨슈머가 메시지를 어디까지 읽었는지 추적하는 오프셋(Offset)은 무엇이며, 컨슈머 그룹 내에서 오프셋이 어떻게 관리되는지 설명해 주세요.
- Kafka가 메시지의 내구성(Durability)을 보장하기 위해 사용하는 메커니즘들을 설명해 주세요.