대규모 트래픽이란
스프링 대용량 트래픽 처리
개념 간단 정리
MSA
- 애플리케이션을 작고 독립적인 서비스들의 집합으로 구성하는 아키텍처 스타일
Spring WebFlux
- Spring 5에서 도입된 리액티브 웹 프레임워킹
- 특히 실시간 데이터 처리, 스트리밍 애플리케이션, 마이크로서비스 간 통신 등에서 강점을 발휘
BFF(Backend for Frontend) 패턴 with WebFlux
- BFF는 특정 프론트엔드 또는 클라이언트 앱을 위한 맞춤형 백엔드 API를 제공하는 패턴
Scale-out
- 시스템의 처리 능력을 향상시키기 위해 서버나 인스턴스를 수평적으로 확장
대규모 기준 잡아보기
- 동시 사용자 수:
- 1,000 ~ 10,000 동시 사용자: 중간 규모
- 10,000 ~ 100,000 동시 사용자: 대규모
- 100,000 이상 동시 사용자: 초대규모
- 초당 요청 수 (Requests per Second, RPS):
- 100 ~ 1,000 RPS: 중간 규모
- 1,000 ~ 10,000 RPS: 대규모
- 10,000 RPS 이상: 초대규모
- 데이터 처리량:
- 100MB/s ~ 1GB/s: 중간 규모
- 1GB/s ~ 10GB/s: 대규모
- 10GB/s 이상: 초대규모
- 피크 시간 트래픽:
- 일반 트래픽의 2-3배: 중간 규모
- 일반 트래픽의 5-10배: 대규모
- 일반 트래픽의 10배 이상: 초대규모
대규모 트래픽을 처리하는 방법
아키텍처 설계
- MSA (Microservice Architecture) 도입 : 애플리케이션을 작고 독립적인 서비스로 분리하여 확장성과 유연성 확보
- BFF (Backend for Frontend) 패턴 적용: 클라이언트별 최적화된 API 제공
기술 스택 최적화
- Spring WebFlux 활용: 비동기 및 논블로킹 처리를 통한 높은 동시성 지원
- 리액티브 프로그래밍 도입: 데이터 스트림을 효율적으로 처리
네트워크 최적화
- 로드 밸런싱 적용 : 트래픽을 여러 서버에 균등하게 분배
데이터베이스 최적화
- 샤딩(Sharding) : 데이터베이스를 여러 개의 작은 단위로 나누어 분산 저장