대용량 트래픽 설계

조현창·2022년 12월 18일
0

대용량 트래픽

목록 보기
1/1

개요

우리가 대용량 트래픽에도 안정성 있는 애플리케이션을 제공하려면 어떤 방법이 있을까?

서버를 늘린다

흔히 게임 오픈, 이벤트 시 서버가 터졌을 때 서버를 늘려라라는 말을 하게된다. 모놀리틱 서버에서 같은 서버를 무한정 늘리는 방법이다. 하지만 이게 정말 좋은 방법인가? 지금처럼 클라우드 환경이 아닐 때에는 서버 1대가 무시할 수 없는 수준의 비용이 들었으며 지금도 어느정도 비용이 소모되긴한다.
기업의 입장에선 계속해서 그런 비용이 들어간다면 부담이 될 수도 있으며 무엇보다 각 컴포넌트 별 사용량이 제각각인데 사용량이 적은 컴포넌트도 함께 복제가 되므로 비효율적일 수 밖에 없다. 가장 쉽지만 리스크가 큰 방법! 또한 이렇게 하더라도 요청이 늘어나면 결국 같은 지점에서 병목이 발생해 전체 서버에 영향이 간다.

병목지점을 해결한다

유지보수 업무를 하는 개발자를 통해 병목지점을 해결하여 성능을 높인다. 그럼 이 병목지점에는 어떤 것들이 있을까?

  • 슬로우 쿼리 (사실 대부분의 경우 슬로우 쿼리로 디비에서 병목인 경우가 많다)
    - 추후 설명할 CQRS, 캐싱으로 어느정도 이를 해결할 수 있다.
  • 서비스 로직 상의 시간복잡도
    - 무분별한 n^3, 2^n 로직을 개선한다.
  • 잦은 시스템 콜이 있는 구조
    - 추후 설명할 MSA구조에서 웹 플럭스 혹은 메세지 큐를 통한 비동기 처리를 도입하여 앱서버에서의 부담을 줄여 어느정도 이를 해결할 수 있다.
profile
공부중

0개의 댓글