RabbitMQ + NestJS Microservices Crash Course | A Simple Order Processing Project
- RabbitMQ는 메시지 브로커로, 서비스 간의 결합도를 낮추고 확장 가능한 통신을 가능하게 함. ✉️
- RabbitMQ의 핵심 개념은 생산자, 소비자, 큐, 교환이며, 라우팅 키를 통해 메시지 타겟팅이 가능함. 🔑
- NestJS는 RabbitMQ와 함께 사용하기 용이하며, 데코레이터를 사용하여 특정 메시지를 수신하고 클라이언트 프록시를 사용하여 메시지를 보낼 수 있음. ⚙️
- RabbitMQ는 비동기적으로 처리될 수 있는 결제, 이메일 알림, 재고 업데이트 등의 작업에 유용함. 📧
- API 게이트웨이는 클라이언트 요청을 받아 RabbitMQ 교환기로 전달하고, 주문 서비스는 RabbitMQ 교환기에서 메시지를 읽어 주문을 처리함. 📦
- Docker Compose를 사용하여 RabbitMQ를 컨테이너 내에서 설정하고 관리할 수 있음. 🐳
- NestJS 마이크로서비스 애플리케이션을 생성하기 위해 NX Generator를 사용함. ✨
- RabbitMQ로 메시지를 보내기 위해 클라이언트 프록시를 생성하고, 메시지를 수신하기 위해 마이크로서비스 애플리케이션을 구성함. 📡