패스잇
백엔드 개발 · 심화

수백 개의 토픽과 수천 개의 파티션을 가진 대규모 Kafka 클러스터에서 안정적인 성능을 유지하기 위한 브로커, 프로듀서, 컨슈머 각 계층에서의 주요 튜닝 파라미터와 그 효과에 대해 설명하시오. 특히 네트워크, 디스크 I/O 관점에서 최적화 방안을 포함하시오.

힌트 · `num.io.threads`, `num.network.threads`, `replica.fetch.max.bytes`, `batch.size`, `linger.ms`, OS 캐시 사용 등 다양한 파라미터를 고려해야 합니다.

replication factorackscompression.typenum.io.threadssocket.send.buffer.bytes

모범답안

대규모 Kafka 클러스터에서 안정적인 성능을 유지하기 위해 브로커, 프로듀서, 컨슈머 각 계층별 튜닝이 중요합니다.

브로커에서는 num.io.threads와 num.network.threads를 늘려 디스크 I/O 및 네트워크 처리량을 높입니다. replica.fetch.max.bytes를 조정하여 복제 효율성을 개선하고, OS 캐시를 적극 활용하여 디스크 접근을 최소화하는 것이 좋습니다.

프로듀서에서는 batch.size와 linger.ms를 적절히 설정하여 배치 처리 효율을 높이고 네트워크 요청 수를 줄입니다. compression.type을 활용하여 전송 데이터 크기를 줄이는 것도 네트워크 부하 감소에 효과적입니다.

컨슈머에서는 fetch.min.bytes와 fetch.max.wait.ms를 조정하여 효율적인 데이터 소비를 유도합니다. 또한, max.poll.records를 통해 한 번에 처리하는 레코드 수를 조절하여 컨슈머의 처리 능력에 맞게 부하를 분산시키는 것이 중요합니다. acks 설정을 통해 데이터 내구성과 처리량 간의 균형을 맞추는 것도 고려해야 합니다.

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

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

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

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