목록 보기
Redis Pub/Sub을 활용한 쿠폰 발급 비동기 처리
백엔드

Redis Pub/Sub을 활용한 쿠폰 발급 비동기 처리

올리브영
올리브영
2023년 8월 7일

두줄요약

올영세일 쿠폰 발급의 대기 시간을 줄이기 위해 Redis Pub/Sub 기반 비동기 처리를 적용했습니다. 이후 과발급과 유실 문제를 보완하며 Worker별 List 저장소로 발급 흐름을 개선했습니다.

문제 상황

  • 올영세일 선착순 쿠폰 발급 시 트래픽 집중으로 대기 시간 증가
  • 기존 동기 처리로 DB Connection 등 자원 점유 심화
  • 다중 Worker 환경에서 쿠폰 과발급과 미발급 이슈 발생

원인 분석

  • 발급 요청과 DB INSERT가 한 흐름으로 묶인 동기 구조
  • Pub/Sub 특성상 다수 Subscriber가 같은 메시지를 모두 수신하는 구조
  • 메시지 유실 가능성과 전송 보장 부재를 고려하지 못한 설계

해결 방법

  • 유효성 검사는 기존 로직 유지, 발급 처리는 Worker로 위임
  • Redis Pub/Sub으로 1개의 Worker만 선택해 처리 경로 분기
  • Redis List에 발급 데이터를 저장하고 LPop으로 꺼내 처리

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...