rabbitmq 2

[Interview Question] Kafka의 구조와 역할은 무엇인가요?

Apache Kafka는 분산 메시징/스트리밍 플랫폼 입니다. Kafka는 초당 수십만 건 이상의 메시지를 처리 가능하고, 여러 Broker를 통해 분산처리가 가능합니다. 또한, 메시지를 디스크에 저장하고 유실된 메시지를 요청을 한번 더 보내는 큐도 존재하면서 장애 발생 시에도 데이터 유실을 방지 할 수 있고, 한 메시지를 여러 Consumer 그룹이 독립적으로 읽을 수 있습니다. Kafka 주요 개념1. Producer메시지를 Kafka에 Publish 즉, 발행을 하는 주체이다.특정 Topic에 메시지를 보낸다.메시지는 JSON 등 여러가지 Payload 형태로 전송이 가능하다.2. Topic메시지가 모이는 구분 단위이다.3. PartitionTopic을 쪼갠 단위이며, topic내에서 여러 Part..

Interview Question 2025.09.16

[Interview Question] 채팅 메시지 저장 요청 부하를 왜 kafka를 사용해서 해결하였는가?

채팅 메시지를 저장할 때, db에 저장, nlp 분석, 알림 발송까지 한 트랜잭션 내에서 동기로 처리하고 있었는데, VU, TPS가 늘어나니 병목현상이 발생했습니다. 이를 해결하기 위해 kafka를 도입해 메시지 처리를 비동기 처리했습니다.이제 api 서버는 메시지를 받으면 kafka에 publish만 하고 응답을 반환합니다. 그 이후 db저장, nlp분석, 알림 발송 같은 구체적인 task는 kafka consumer에게 위임하여 병렬로 처리하도록 구조를 바꿨습니다.구조를 변경한 이후 동기에 들어오는 요청이 폭증해도 안정적으로 병목을 해결할 수 있게 되었습니다. 실제 부하테스트에서도 TPS가 200수준이었지만 2000이상으로 확장 가능해졌습니다. RabbitMQ같은 다른 메시지 큐도 고려할 수 있었지만..

Interview Question 2025.08.29