sanghunjo921 / ticketing-nest

최대 60만명의 동시 접속자가 티켓을 조회하고 최대 6만명의 동시 접속자가 티켓을 예매하거나 구매하는 서비스의 백엔드 파트입니다.
0 stars 0 forks source link

구매 엔드포인트 성능 개선 - 캐싱 데이터 활용 #23

Closed sanghunjo921 closed 7 months ago

sanghunjo921 commented 7 months ago

목표

구매 엔드포인트 내에서 이전 예매 엔드포인트에서 캐싱된 티켓, 구매 수량, 남은 수량 데이터를 활용하여 데이터베이스 접근을 최소화하고, 대용량 트래픽 발생 시 데이터베이스로의 연결로 인한 성능 저하를 최소화합니다. 추가로 쿠폰 정보도 캐싱하여 활용합니다.

제약조건

태스크

통과조건 (Acceptance Criteria; AC)

sanghunjo921 commented 7 months ago

기존 예매 엔드포인트에서 캐싱 된 데이터 사용해 구매 로직 돌아가게 완료

Before

스크린샷 2024-04-01 오전 3 09 03

After

스크린샷 2024-04-01 오전 5 51 07

실패율 46.6% -> 2.03% 로 감소

sanghunjo921 commented 7 months ago

쿠폰데이터 캐싱 완료

스크린샷 2024-04-01 오전 3 08 22

결과: 실패율 0.39%

mget & promise로 병렬처리하여 레디스접근 최소화

스크린샷 2024-04-01 오전 5 58 48

결과: 실패율 0.032%