선착순 시스템에 대한 대용량 트래픽 처리 솔루션
선착순 컨텐츠와 같은 특수 이벤트가 있을때 유저 요청 트래픽이 급증하는 경우가 생길 수 있습니다.
트래픽이 급증하면 요청 처리 제한 혹은 DB 커넥션 풀의 갯수 제한 관련한 예외가 발생할 수 있습니다.
이런 상황에서 회사에서 개발하면서 처리해보고 싶었던 대용량 트래픽 대비 솔루션을 설계 및 개발해 보았습니다.
Scale-Out , Scale-Up 해서 서버 자체의 처리능력을 향상시키는 방법이 아닌
Redis를 이용해서 대기 Queue를 만들고 트래픽 부하를 줄여주는 방식으로 처리해 보겠습니다. 대용량 트래픽 처리 적용 API와 미적용 API의 Endpoint를 따로 두어 성능 비교 예정입니다.
트래픽 처리에 중점을 두었기에 주제에서 벗어하는 불필요한 로직,예외처리 그리고 테이블 스키마는 최대한 생략하고 간단하게 구성하였습니다!
사용기술
- Java , Spring Boot, MySQL, JPA, Redis, maven, git