BackEnd/Kafka 4

[Kafka] Kafka 메시지 처리 성능 향상 (Partition)

Partition이란? 큐(메시지를 임시로 저장할 수 있는 공간)를 여러개로 늘려서 병렬 처리를 가능하게 하는 기본 단위이다.즉, Topic을 여러개의 물리적 단위로 분할한 것. 이러한 Partition이라는 개념이 Kafka에서 주는 장점은 다음과 같다.여러개의 Consumer가 각각의 파티션을 병렬적으로 읽기 때문에 처리 속도가 향상된다.파티션 수와 Consumer 수를 늘려서 데이터 처리량 향상수평적 확장 가능 Partition 수는 토픽을 생성할 때 설정할 수 있다.$ bin/kafka-topics.sh \--bootstrap-server \--create \--topic \--partitions 나는 email.send라는 Topic에 Partition을 3개 생성했고, Partiti..

BackEnd/Kafka 2025.08.15

[Kafka] Dead Letter Topic

Producer에서 메시지를 Kafka로 전송하고 Consumer가 처리를 해야하는데 Consumer에서 메시지를 처리하지 못하게 되면 어떻게 될까? Kafka에서는 재시도(Retry)정책을 통해 메시지 처리에 실패 했을때 적절한 대응이 가능하다. 재전송과 관련된 정책은 @RetryableTopic에서 정의할 수 있다.attempts : 재전송 시도 횟수backoff : 재전송 시간 간격 정의, multiplier를 2로 정의할 경우 재전송 간격이 2배씩 증가.dltTopicSufflix : dlt Topic의 접미사 정의@KafkaListener( topics = "email.send", groupId = "email-send-group")@RetryableTopic( ..

BackEnd/Kafka 2025.08.14

Spring Boot + Kafka 메시지 테스트

Spring Boot로 Producer와 Consumer 서버를 생성하고 Kafka Server에 메시지를 넣어 통신하는 것을 실습했다. 준비물Producer 프로젝트 (Spring Boot)Consumer 프로젝트 (Spring Boot)Kafka Server(EC2) 구현 로직클라이언트가 REST API(`/api/emails`)로 이메일 발송 요청(JSON)을 보냄Producer(Spring Boot 서비스)가 요청을 받아서 Kafka 토픽(“email.send”)에 메시지를 발행Kafka 브로커는 그 메시지를 해당 토픽에 저장Consumer(Spring Boot 서비스)가 토픽을 구독하다가 새 메시지를 읽음Consumer가 JSON을 EmailSendMessage 객체로 변환Consumer에서 실..

BackEnd/Kafka 2025.08.14

Kafka란?

메세지 지향 미들웨어(MOM) 메시지 지향 미들웨어란 응용 소프트웨어 간의 비동기적 데이터 통신을 위한 소프트웨어이다. 메시지 지향 미들웨어는 메시지를 전달하는 과정에서 보관하거나 라우팅 및 변환을 할 수 있다는 장점을 가진다. 메시지 큐(Message Queue) 메시지 큐(Message Queue)란 큐(Queue) 형태에 데이터를 일시적으로 저장하는 임시 저장소를 의미한다. 메시지 큐를 활용하면 비동기적(Asynchronous)으로 데이터를 처리할 수 있어서 효율적이다. 여기서 비동기적으로 데이터를 처리한다는 것의 의미는 A와 B라는 작업을 수행할때 A작업을 시작한 직후에 B작업도 바로 시작하는것을 의미한다.반면 동기적 처리(Synchronous)는 A작업이 다 끝날 때 까지 기다리고 B를 처리하..

BackEnd/Kafka 2025.08.12