개발자 준비/트래픽 핸들링4 [트래픽 핸들링] Spring WebFlux(feat. I/O model, Thread) [트래픽 핸들링] Spring WebFlux(feat. I/O model, Thread) 대량의 트래픽이 몰려 서버에 부하가 걸리는 상황을 방지하기위한 여러가지 방법이 존재한다. 프록시 캐시서버, CDN , 스케일 업, 스케일 아웃 등등 오늘은 트래픽을 효율적으로 관리할수있도록 해주는 Spring WebFlux를 정리해볼것이다. ''Spring WebFlux를 이용한 Boot2 ''와 ''Spring MVC를 이용한 Boot1''을 비교한 그래프이다. 해당 그래프에서는 두 가지 특징을 볼 수 있다. 유저가 적을 때에는 성능에 별반 차이가 없다. 유저가 늘어나면 늘어날수록 극명한 성능 차이를 보여주고 있다. 어떻게 이런 차이가 일어날 수 있을까? S.. 2022. 3. 16. [트래픽 핸들링] Thread pool 과 Queue (Feat.Tomcat WAS) [트래픽 핸들링] Thread pool 과 Queue (Feat.Tomcat WAS) Thread pool Tomcat WAS는 Thread를 이용해 사용자의 요청을 처리한다. 이 요청들은 Thread per request 모델로 처리된다. Thread 하나당 요청 한개를 담당해서 처리한다는 뜻이다. 이 Thread들은 Thread pool에 의해 관리된다. Thread의 생애주기를 관리한다고 생각하자 유저들로부터 HTTP 요청이 들어올 때 요청들은 Queue에 저장된다. WAS의 Thread pool이 수용할 수 있는 수(thread pool size)의 요청까지만 Thread들이 각각 요청을 담당해서 동시적으로 작업을 처리하고 나머지 요청은 Queue에서 대기한다. Thread pool의 특징 Thr.. 2022. 3. 16. [트래픽 핸들링] Blocking, Non-blocking, Sync, Async I/O가 뭘까?(Feat. IBM 논란) [트래픽 핸들링] Blocking, Non-blocking, Sync, Async I/O가 뭘까?(Feat. IBM 논란) 프로젝트가 배포단계에 들어서면서 다음 단계로 시야를 돌려야 할 타이밍이 왔다. 운영단계를 공부할 때가 온것같다. 그래서 트래픽을 핸들링하는 방법들에 대해서 나름 조사하고 공부해 볼까한다. 내 프로젝트는 딱히 많은 트래픽이 몰리는 서비스는 아니지만 머신러닝작업도 보유하고있어서 서버 자체가 처리에 사용할 리소스가 많은 편이라 트래픽이 몰리는 상황엔 위험할수있다. 그래서 쉐도우 복싱 느낌이 있지만 대용량 트래픽을 대비해 어떤 노력을 해야하는지 알아보고자 한다. 때문에 지금 서버들이 어떤 방법으로 서버의 I/O를 핸들링 하고있는지 정리해볼것이다. 서버의 I/O는 서버로 오는 요청, 요청의 .. 2022. 3. 16. [트래픽 처리 이슈] CDN CDN 개요 사이드 프로젝트의 로직 구현이 마무리되고 남은건 안정화 작업이다. 이제부터 공부해야할 가장 중요한 키워드는 바로 대규모 트래픽 처리이다. 데이터 통신 기술이 발달하면서 전 세계적으로 유튜브, 넷플릭스 등 수 많은 데이터들이 전송되는 세상에 살고 있다. 이렇게 폭발적으로 증가하는 데이터를 최대한 지연 없이 효율적으로 전달하고 물리적 거리의 한계를 극복하기 위해 CDN이라는 기술이 등장하게 된다. CDN이란?(Content Delivery Network, CDN) CDN은 Content Delivery Network의 약자로서 지리적인 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠 전송을 할 수 있는 기술을 말한다. 이를 통해서 컨텐츠의 병목현상을 피할 수 있다. 직역 그대로 컨텐츠의 빠.. 2022. 2. 21. 이전 1 다음