복붙노트

[SPRING] 스프링 부트 임베디드 Tomcat 성능

SPRING

스프링 부트 임베디드 Tomcat 성능

내 응용 프로그램 용 Microservices API를 개발 중입니다. 나는 스프링 부트 애플리케이션으로 시작했다. 필자는 "내장 된 바람둥이가있는 비즈니스 코드"와 "포함 된 바람둥이가없는 비즈니스 코드"라는 두 가지 결과물을 만들었습니다.

성능 결과를 비교해 보면 "내장되지 않은 바람둥이"(즉 독립 실행 형 바람둥이에서 실행 중)가 기본 실행으로 인해 좋은 결과를 제공한다는 것을 알 수 있습니다.

기본적으로 임베디드 바람둥이와 독립 실행 형 바람둥이의 차이점은 무엇입니까?

두 번의 실행간에 성능이 어떻게 다릅니 까?

해결법

  1. ==============================

    1.이 문제의 근본 원인을 찾아 냈습니다.

    이 문제의 근본 원인을 찾아 냈습니다.

    APR (Apache Portable Runtime)은 바람둥이 실 실행에 중요한 역할을합니다.

    기본적으로 내장 된 Tomcat은 NIO를 실행합니다. NIO와 BIO는 Java 기반 실행이지만 APR은 기본 실행입니다. NIO와 APR의 성능을 비교할 때 APR은 훨씬 빠릅니다.

    사실 모든 Linux 기반의 tomcat 번들은 tomcat lib 폴더 아래에 APR 라이브러리와 함께 제공됩니다.

    임베디드 tomcat (즉, Spring Boot)에서 APR을 활성화 한 후에는 독립 실행 형 Tomcat과 비교하여 성능이 동일합니다.

    http://tomcat.apache.org/tomcat-7.0-doc/apr.html

  2. from https://stackoverflow.com/questions/40319869/spring-boot-embedded-tomcat-performance by cc-by-sa and MIT license