AI Briefing

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

·2023.08.08 02:00

핵심 내용

올리브영이 Redis Pub/Sub과 List를 결합하여 쿠폰 발급 시 발생하는 과발급 및 데이터 유실 문제를 해결했다.

1 / 2

자세히 보기

올리브영은 대규모 트래픽이 몰리는 세일 기간 동안 사용자 대기 시간을 줄이기 위해 기존의 동기(Sync) 방식 쿠폰 발급 프로세스를 비동기(Async) 방식으로 개선했다.

초기에는 Redis Pub/Sub을 도입했으나, 다중 Worker 환경에서 동일한 메시지를 여러 Worker가 동시에 수신하여 발생하는 쿠폰 과발급 문제와 메시지 전송 보장이 되지 않아 발생하는 데이터 유실 문제를 겪었다.

이를 해결하기 위해 최종적으로 다음과 같은 아키텍처를 적용했다:

  • Redis Pub/Sub: 특정 Worker에게 작업을 할당하기 위한 신호 전달용으로 사용
  • Redis List: 실제 쿠폰 발급 데이터를 저장하는 큐(Queue) 역할 수행
  • Worker 로직: 할당받은 Worker가 자신의 전용 List 크기를 체크한 뒤, LPop을 통해 데이터를 가져와 안전하게 처리

이러한 구조를 통해 데이터 유실 없이 안정적으로 쿠폰을 발급하며 높은 트래픽을 처리할 수 있는 환경을 구축했다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.