Home 선착순 쿠폰 발급 시스템 (1) 발급 처리 구성도
Post
Cancel

선착순 쿠폰 발급 시스템 (1) 발급 처리 구성도

구성도

image

순서

  • 유저의 요청을 받는 API 서버와 쿠폰을 실제로 발급하는 쿠폰 서버가 별도로 존재
  1. API SERVER는 유저들의 요청을 처리해서 Redis Cache를 통해 발급 대상을 검증한다.
  2. 검증된 대상은 쿠폰 발급 대기열 에 대기를 시킨다.
  3. 선착순 쿠폰 발급 성공 여부를 반환한다.
  4. 대기 큐를 인터페이스로 사용하여 쿠폰을 발급하는 서버로 넘긴다.
  5. 쿠폰 발급 서버는 해당 큐를 폴링하여 읽어서 쿠폰 발급 트랜잭션Mysql에 처리한다.
  • 쿠폰 발급 기능은 비동기로 이루어진다.

부하 테스트

Locust

  • Python 스크립트 언어로 구현하는 서버 부하테스트 툴
  • 로컬 환경 구축
  • 실습 과정 지속적인 부하 테스트

image

모니터링 시스템 연동

  • 부하시스템시 시스템의 Metric 확인
  • AWS RDS, AWS Elasticache Metric 확인
  • 로컬 환경의 모니터링 대시보드 구축 (Spring Actuator & Prometheus & Grafana)

image

image

사용 기술 스택

로컬 환경

  • JDK 17
  • Spring Boot 3.2.2
  • IDE: IntelliJ Ultimate edition
  • DBMS: DataGrip
  • Docker( Docker-compose, Docker desktop)

배포 환경

  • AWS EC2

기술 분류(개발)

  • Spring Data JPA & QueryDsl
  • Spring Data Redis
  • Spring Actuator & Prometheus & Grafana (모니터링)

기술 분류(데이터)

로컬 환경

  • Mysql 8
  • Redis 7
  • H2

배포 환경

  • AWS RDS
  • AWS Elasticache

성능 테스트

로컬 환경

  • Locust

배포 환경

  • 네트워크 트래픽 비용

깃허브 주소

https://github.com/vivalahm/coupon-management-system/tree/main