스로틀링(throtling)
스로틀링이란?
스로틀링은 전자 기기의 CPU, GPU 등이 지나치게 과열될 때 기기의 손상을 막고자 전압을 조절하는 것을 의미한다. 즉, 최악의 상황을 막기 위해 요청 개수나 속도를 조절하는 것을 의미한다.
서버가 처리할 수 있는 요청보다 월등히 많은 요청을 받게되면 서버가 터질 수도 있기 때문에 서버로 가는 요청 수를 조절해 이를 방지하는 방법이다.
너무 많은 요청으로 인해 API가 가득 차는 것을 방지하기 위함 -> API Gateway 레이어에서 API 요청 조절
서버 순간 처리 요청 수를 제한하고 바로 429 Too Many Requests 응답을 주면 클라이언트도 빠르게 파악 및 대응이 가능하고, 서버도 요청 수를 조절 할 수 있다. -> 요청 스레드가 밀려서 전체 사용자 응답 느려지는 것 방지 가능
API Gateway
MSA 패턴 중 하나로, API를 사용하는 클라이언트와 서버 사이에 위치해 다양한 목적으로 사용됨
- 인증 및 권한 부여
- 서비스 검색 통합
- 속도 제한
- 로깅을 반영 및 추적
대기열
서버가 처리 가능한 것을 넘은 요청이 올 때, 해결방법은 두 가지이다.
서버 자체의 크기 늘리기 or 서버의 처리량을 줄이는 것(대기열)
대량 접속이 동시다발적으로 요청될 경우 서버 및 시스템에 부하가 유발되어 사이트 단절 발생 가능.
대기열 시스템은 순차적 접속을 통해 부하가 유발되지 않도록 해 대규모 트래픽에도 흔들림 없이 사이트 운영을 도와주는 시스템이다.
활용 사례
지마켓, 옥션은 Redis를 이용해 RedCarpet이라는 대기열 아키텍처를 도입 -> 어렵다,,,
Reference
스로틀링
https://rene-or-irene.tistory.com/22
대기열
'개인프로젝트' 카테고리의 다른 글
[개인 프로젝트] 가계부 프로젝트 step1 : 기획 (0) | 2024.04.24 |
---|---|
성능 향상을 위한 공부4 - gRPC (0) | 2024.02.13 |
성능 향상을 위한 공부3 - 서킷 브레이킹 (0) | 2024.02.13 |
성능 향상을 위한 공부1 - 스케쥴러 분산 (0) | 2024.02.13 |
[개발] Soft Delete(논리 삭제)와 Hard Delete(물리 삭제) 중 어떤 방식으로 데이터를 삭제해야할까? (0) | 2024.01.23 |