<TIL> 96. Springboot Server Properties - Embedded Tomcat

YUJIN LEE·2023년 4월 11일
0

트러블슈팅

목록 보기
2/3

Spring

Spring Boot의 기본 웹 서버는 Embeded Tomcat.
Embedded Tomcat의 설정을 따로 할 수 있다.

설정항목(사용한 것)

  • server.tomcat.max-connections - 서버가 유지할 수 있는 최대 Connection의 수
    (Default: 8192)
    -> 이것 때문에 10000명의 요청을 보내도, 8192명에서 connection오류가 발생했다.
  • server.tomcat.threads.max - 최대 실행 가능 Thread 수(Default: 200)

알게된 점
-> Springboot의 server가 tomcat이라는 것을 알게되었고,
자체적으로 기본값이 있어서 이걸 변경해줄 수 있다는 사실을 깨달았다.
결국 ec2나 다른 것들의 문제가 아닌 springboot 자체 서버에서 쓰레드의 수와, connection연결을 막은 것 이였다.

이것 때문에 JMeter를 사용해 요청을 보낼 때,
아무리 코드를 수정하고, 대기열을 걸어보고 이것저것을 전부 다 해봐도
항상 비슷했던 오류퍼센트는 결국 embedded tomcat의 기본 설정 값 때문이였다!
이런걸 설정할 수 있다는걸 깨달았고, 처음 알게된 사실이라 너무 신기했다.

Embedded System 임베디드 시스템?

내장된 시스템.
기계나 기타 제어가 필요한 시스템에 대해 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내부에 존재하는 전자 시스템

특정 작업을 수행하도록 하는 솔루션

즉, 전자장치 전체에서 일부분으로 구성.
제어가 필요한 시스템을 위한 두뇌역할을 하는 특정 목적의 컴퓨터 시스템.

특정 목적을 수행하는 컴퓨터 시스템
-> 목적을 설정하고 이를 수행하는 프로그램 코드를 작성해 메모리에 기록하고 이를 읽어 동작시키는 방법이 일반적.

임베디드 시스템은 하나 이상의 주 처리 코어로 제어
-> 마이크로컨트롤러(microcontroller)나 DSP(Digital Signal Processor)등의
프로세서 코어가 장착될 수 있다.

Embedded Tomcat

Spring Boot에는 tomcat이 내장되어 있어, 애플리케이션을 빌드하고 실행하는 것만으로도 웹애플리케이션을 서비스 할 수 있다.

즉, 스프링부트는 실행될 환경에 톰캣을 설치할 필요없이 애플리케이션을 바로 실행할 수 있다.

Spring Boot의 spring-boot-starter-web 모듈에 기본으로 포함되어 있는 embedded tomcat WAS(Web Application Server)

Springboot에서 사용하는 Apache Tomcat = Apache Web Server + Tomcat Server

WAS(Web Application Server)

WebServer?

클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(html, jpg, css 등)를 제공하는 서버.
즉, Web Server는 서버가 가지고 있는 특정 자원만을 반환하는 역할.

WAS?

Web Server와 달리 클라이언트로부터 HTTP 요청을 받아 동적인 콘텐츠를 반환하는 서버 역할.

동적인 컨텐츠?
특정 자원이 아닌 다양한 로직, db조회 등의 작업이 진행된 후 반환하는 컨텐츠.

Web Server와 WAS를 같이 사용하는 이유?

서버의 부하방지.

단순 정적 자원 반환같은 경우 Web Server가 처리하게 되어 부하를 분산시킴.

그 외에도 Web Server를 Load balancer로 사용하고 여러 대의 WAS를 두어 부하를 분산하는 등의 이유가 있다.

Tomcat?

WAS와 Web Server의 역할 모두를 수행할 수 있다.

Tomcat의 Web Server의 처리속도가 Apache Web Server의 처립속도보다 느린 이유로 Spring boot에서는 Apache Web Server와 Tomcat Server를 같이 사용함.

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글