본문 바로가기

Back-end/Basic

대용량 트래픽 처리 방법 - Scale Up VS Scale Out

Scale Up

서버에 CPU나 RAM 등을 추가하여 서버의 하드웨어 스펙을 향상시키는 방법
수직 확장이며, 성능 확장에 한계가 있음

 

Scale out

서버를 여러 대 추가하여 시스템을 증가시키는 방법

하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리함
수평 확장이며, 지속적 확장 가능

 

 

 

 

 

참고: https://tech.gluesys.com/blog/2020/02/17/storage_3_intro.html

 

번외) 

https://www.youtube.com/watch?v=5oTlFJ0llNw 

 

1. 미리 준비할 수 있는 것들

HTTP 요청이 왔을 때 connection을 매번 요청할 때마다 쓰는게 아니라

keep-alive라는 설정을 써서 connection을 한번 맺어 놓고 계속 쓰는 방법

keep-alive 적용 시 timeout, maxRequests 설정할 수 있는데,

maxRequests 기준으로는 여유있게 늘려주거나 아예 제한을 없애버려서 keep-alive connection이 충분히 유지될 수 있도록 설정 해놓을 수도 있습니다.

keep-alive를 키게 되면 connection들이 연결된 채로 많이 물려있을 수도 있기 때문에 tomcat의 max connections 설정도 미리 문제가 없도록 프록시 서버들의 수준을 계산해서 늘려 놓습니다.

프록시랑 애플리케이션 트래픽을 처리할 WAS단의 서버가 있는데 프록시에서 WAS단에 전달할 수 있는 Max Connection을 제한해놓고, Backend 서버에서 connection이 모자라서 이걸 처리하지 못하는 일이 없게 하기 위해서

stateless한 서버 같은 경우 앞단에 정적(static) 콘텐츠를 서빙하기 위한 서버를 따로 빼고 CDN을 적용해 놓고 Application layer에는 Storage 쪽으로 가기 전에 캐시 등을 구성하는 일반적이고 보편적인 구성들이 있음

스레드 풀(Thread Pool)을 늘린다던지 줄인다던지 조정

'Back-end > Basic' 카테고리의 다른 글

성능, 부하, 스트레스 테스트  (0) 2022.03.08
TCP 3, 4-way handshake  (0) 2022.03.07
SEDA(Staged Event-Driven Architecture)  (0) 2022.03.06
Kafka Streams API  (0) 2022.03.06
Cloud Native 란?  (0) 2022.03.06