Kafka 4

[Kafka] MSA 구조에서의 Kafka 사용

MSA(Microservice Architecture)란?MSA는 큰 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누어 개발하고 운영하는 아키텍처이다. 각 서비스는 독립적으로 배포와 확장이 가능하고, 명확히 분리된 API로 통신을 하게 된다. MSA의 특징독립적으로 개발, 배포, 확장 가능API 기반의 통신으로 서비스 간 느슨한 결합 유지서비스 마다 서로 다른 언어나 기술 스택 사용 가능장애 격리 : 특정 서비스 장애가 전체 시스템에 영향 최소화 이러한 MSA와 같은 분산환경에서 Kafka가 유용하게 사용될 수 있다. 서비스간 직접 호출 대신 Kafka 메시지 큐를 통해 이벤트 기반의 통신을 통해 서로 의존성을 줄일 수 있고, 비동기 작업 처리로 응답속도를 향상시킬 수 있다. 또한 Kafka의 토..

BackEnd/Kafka 2025.08.19

[Kafka] Kafka의 고가용성

node란?Kafka가 설치되어 있는 서버 단위싱글노드 클러스터의 경우, 한 노드의 고장이 서비스 장애로 이어질 수 있기 때문에 최소 3대의 노드를 구성하여 단일점 오류를 방지한다. 브로커(broker)와 컨트롤러(controller)Kafka 서버는 크게 브로커와 컨트롤러로 구성되어있다.브로커 : 메시지를 저장하고 클라이언트의 요청을 처리하는 역할 (9092 포트)컨트롤러 : 브로커들간의 연동과 전반적인 클러스터의 상태를 총괄한다.(9093 포트) 레플리케이션(Replication)이란?Kafka의 가용성과 안정성을 높이기 위해 토픽의 파티션을 여러 노드에 복제하는 것을 의미.리더 파티션과 팔로워 파티션으로 구분된다.리더 파티션 : 프로듀서나 컨슈머가 직접 메시지를 읽고 쓰는 파티션팔로워 파티션 : 리..

BackEnd/Kafka 2025.08.18

[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

Kafka란?

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

BackEnd/Kafka 2025.08.12