🧾 Overview
이 프로젝트는 MSA(MicroService Architecture) 기반의 전자상거래 시스템으로,
Kafka를 활용한 이벤트 기반 데이터 처리, 분산 추적, 모니터링, 그리고 컨테이너 기반 배포를 적용 및 실험한 프로젝트입니다.
⚙️ Key Features
- MSA 기반 서비스 분리 및 독립 배포
- RabbitMQ & SpringCloudBus 활용 config refresh
- Kafka 기반 이벤트 드리븐 아키텍처 구현
- Kafka Connector를 통한 DB 동기화
- FeignClient 활용 서비스 간 통신
- Zipkin을 활용한 분산 트레이싱
- Prometheus + Actuator 기반 모니터링
- Docker 기반 동일 네트워크 그룹 컨테이너 환경 구성
🎯 Purpose
- MSA 구조 설계 및 서비스 간 통신
- Kafka를 활용한 비동기 이벤트 처리
- FeignClient 활용
- 분산 시스템에서의 추적(Tracing)과 모니터링(Monitoring) 구현
- 네트워크 그룹 기반 이미지 배포
🏗️ Architecture
🔹 API
| 기능 | URL(API Gateway) | URI (!API Gateway) | HTTP Method |
|---|---|---|---|
| 사용자 정보 등록 | /user-service/users | /users | POST |
| 전체 사용자 조회 | /user-service/users | /users | GET |
| 사용자 정보,주문 내역 조회 | /user-service/{user-id} | /users/{user_id} | GET |
| 작동 상태 확인 | /user-service/users/health_check | /users/health_check | GET |
| 환영 메시지 | /user-service/users/welcome | /users/welcome | GET |
| 기능 | 마이크로 서비스 | URI(API Gateway) | HTTP Method |
|---|---|---|---|
| 상품 목록 조회 | Catalogs MicroService | /catalog-service/catalogs | GET |
| 사용자 별 상품 주문 | Orders MicroService | /order-service/{user_id}/orders | POST |
| 사용자 별 주문 내역 조회 | Orders MicroService | /order-service/{user_id}/orders | GET |
🔹 Microservices 핵심기능
- API Gateway
로드밸런스드 라우팅 및 인증필터 - User Service
회원 관리 / 토큰 인증 (Connector Sink로 이벤트 동기화) - Order Service
주문 생성 및 이벤트 발행 (Producer) - Catalog Service
상품 및 재고 관리 (kafkaListener를 활용한 Consumer) - Config Service
중앙 설정 관리 서버 (native repo/ git repo) (Spring Cloud Config) (토큰 암호화) - Eureka
서비스 디스커버리
🔄 Event-Driven Architecture (Kafka)
- Order Service
주문 생성 시 OrderProducer를 통해 Kafka 토픽으로 메시지 발행 - Kafka
주문 데이터를 토픽으로 전달 - Kafka Connector (Sink)
토픽 데이터를 DB(User와 같은 DB)에 반영 - Catalog DB
재고 수량 리스너를 통해 업데이트
🔍 Observability
🧵 Distributed Tracing & Monitoring (Zipkin & Prometheus & Actuator)
- 각 서비스 요청 흐름을 traceId 기반으로 다음 정보 추적 및 병목현상 관리
- 서비스 간 호출 흐름
- 처리 시간
- method/path
- 연결된 서비스
- 서비스 간 호출 흐름
- 트래픽 및 요청 횟수 등 확인
🏗️ Tests
















