Skip to content

Sirius147/Le-Ecommerce

Repository files navigation

📦 Le-ECommerce



🧾 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


🔹 유스케이스 image
🔹 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

1. JWT 인증 image (2)

image (3)

2. Config refresh by Spring Cloud Bus & RabbitMQ image (4)
FeignClient 활용 서비스 예외처리 image (5)
kafka message queuing test image (6)
5. kafka Connector Source/Sink 활용 DB 동기화 image (7)
6. Topic Producing & Consuming image (8)

image (9)

image (10)

7. 분산된 동일 서비스에서 Sink 활용한 DB 동기화 image (11)

image (12)

image (13)

image (14)

8. Zipkin & Prometheus image (15)

image (16)

image (17)


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors