전체 구조 설계
전체 구조
이와 같이 3개의 서비스로 각각 카탈로그, 유저, 주문 서비스를 구축할 예정이다. 클라이언트는 카탈로그 서비스에서 상품을 조회하고, 주문 서비스에서 상품을 주문하며, 유저 서비스에서 사용자 조회 및 주문 확인을 한다. 상품을 주문할 때 재고에 대한 관리는 Kafka와 같은 이벤트를 통해 카탈로그 서비스와 동기화 시킬 예정이다.
전체적인 구조는 3개의 서비스 외에 API Gateway를 통해 Routing Service를 구축하고, Eureka Server를 통해 Registry 서비스를 구현할 예정이다. 데이터 동기화는 Kafka를 통해 메세징과 스트림으로 수행하고, 이후 여러 서비스의 환경 설정에 대한 파일들을 모아서 외부에서 관리하는 COnfiguration 서비스도 구축할 예정이다.
각 서비스와 Kafka, Monitoring 서비스는 Docker 컨테이너로 띄울 예정이고, Ingerss Controller로 NGINX를 사용한다. 오케스트레이션은 쿠버네티스를 사용하고, CI/CD pipeline으로 배포 자동화까지 하게 된다.
구성 요소
이러한 구조를 가지는 MSA를 설계하는데 필요한 구성 요소는 위와 같다.