Skip to content
Jun Kim edited this page Jul 19, 2024 · 6 revisions

녹화 영상

화면-녹화-영상-2

아키텍처 디자인:

콘서트 티켓팅 서비스를 제공하는 웹 백엔드 기획
콘서트 예매 오픈 시간에 티켓 예매 요청에 대량의 트래픽이 몰리는 상황을 가정하여 이를 견고하게 견딜 수 있는 아키텍처 구상 대용량의 트래픽을 대기열을 통해 비동기 방식으로 buffer를 주어 처리하되, 실시간으로 예매 순번을 조회할 수 있도록 구현 kafka를 기준으로 producing 하는 main-server와 consuming 하는 consumer-server 로 모듈을 분리

ERD:

전체 예매 백엔드 플로우

[메인 서버]:

  1. 회원가입 / 로그인: 사용자는 메인 서버에서 회원가입 및 로그인을 통해 인증 / 인가 진행.
  2. 콘서트 목록 및 상세 페이지: 사용자는 콘서트 목록에서 원하는 콘서트의 상세 페이지로 진입.
  3. 예매 요청 처리: 사용자가 예매 요청을 하면, 해당 사용자의 고유값과 콘서트의 고유값 등을 포함한 메시지를 Kafka에 produce. [컨슈머 서버]:
  4. 메시지 소비 및 처리:
    • @KafkaListener를 사용하여 Kafka에서 메시지를 consume.
    • 메시지를 파싱하여 사용자와 콘서트 정보를 기반으로 순번을 할당하고 예매 데이터를 생성. (이 시점부터 예매 대기 순번 확인 가능)
  5. 예매 상태 업데이트:
    • @Scheduled를 사용하여 일정 시간이 지난 예매 건을 EXPIRED 상태로 업데이트.
    • 공연의 예매 가능 수량을 기준으로 AVAILABLE 상태로 업데이트. [메인 서버]:
  6. 예매 상태에 따른 화면 전환:
    • WAIT 상태에서는 예매 대기 화면을 표시.
    • AVAILABLE 상태로 변경되면, 예매 페이지로 진입하여 결제 과정을 진행

Clone this wiki locally