Nest.js

Apache Kafka와 이벤트 기반 아키텍처

지난 절에서는 NestJS와 gRPC를 활용하여 고성능 서비스 간 동기 통신을 구현하는 방법을 살펴보았습니다. 이제 7장의 마지막 절로, 마이크로서비스 아키텍처에서 비동기 통신과 이벤트 기반 아키텍처(EDA)의 핵심 요소인 Apache Kafka를 NestJS에 적용하는 방법에 대해 알아보겠습니다.

Kafka 사용자 이벤트 서비스 구축와 알림 서비스 구축를 중심으로 Apache Kafka와 이벤트 기반 아키텍처의 판단 흐름을 읽습니다.

핵심 흐름

1

이벤트 기반 아키텍처 (EDA)와 Kafka

이벤트 기반 아키텍처(EDA, Event-Driven Architecture)는 시스템의 구성 요소들이 직접적으로 호출하는 대신, 이벤트(Event)를 발행하고 구독하는 방식으로 상호작용하는 아키텍처 스타일입니다.

2

NestJS에서 Kafka 설정 및 구현

NestJS는 @nestjs/microservices 패키지를 통해 Kafka 전송 계층을 지원합니다.

3

컨테이너 환경 실행 검증

Kafka 및 Zookeeper 실행 Docker Compose 파일이 있는 디렉토리에서: docker-compose up -d 모든 컨테이너가 정상적으로 실행되었는지 확인: docker-compose ps...

4

Kafka 사용자 이벤트 서비스 구축

파티션 덕분에 Kafka는 높은 처리량을 가집니다.