You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jun Kim edited this page Jul 19, 2024
·
6 revisions
녹화 영상
아키텍처 디자인:
콘서트 티켓팅 서비스를 제공하는 웹 백엔드 기획 콘서트 예매 오픈 시간에 티켓 예매 요청에 대량의 트래픽이 몰리는 상황을 가정하여 이를 견고하게 견딜 수 있는 아키텍처 구상
대용량의 트래픽을 대기열을 통해 비동기 방식으로 buffer를 주어 처리하되, 실시간으로 예매 순번을 조회할 수 있도록 구현
kafka를 기준으로 producing 하는 main-server와 consuming 하는 consumer-server 로 모듈을 분리
ERD:
전체 예매 백엔드 플로우
[메인 서버]:
회원가입 / 로그인: 사용자는 메인 서버에서 회원가입 및 로그인을 통해 인증 / 인가 진행.
콘서트 목록 및 상세 페이지: 사용자는 콘서트 목록에서 원하는 콘서트의 상세 페이지로 진입.
예매 요청 처리: 사용자가 예매 요청을 하면, 해당 사용자의 고유값과 콘서트의 고유값 등을 포함한 메시지를 Kafka에 produce.
[컨슈머 서버]:
메시지 소비 및 처리:
@KafkaListener를 사용하여 Kafka에서 메시지를 consume.
메시지를 파싱하여 사용자와 콘서트 정보를 기반으로 순번을 할당하고 예매 데이터를 생성. (이 시점부터 예매 대기 순번 확인 가능)
예매 상태 업데이트:
@Scheduled를 사용하여 일정 시간이 지난 예매 건을 EXPIRED 상태로 업데이트.