>  기사  >  Java  >  Spring Boot 애플리케이션의 성능 개선 - 1부

Spring Boot 애플리케이션의 성능 개선 - 1부

王林
王林원래의
2024-08-22 12:33:43614검색

Melhorando o desempenho de aplicações Spring Boot - Parte I

Spring Boot 애플리케이션을 시작할 때 일반적으로 스타터에서 제공하는 기본 설정을 사용하는데, 이는 대부분의 경우 충분합니다. 그러나 성능이 필요한 경우 이 문서의 첫 번째 부분에서 설명하는 것처럼 특정 조정이 가능합니다.

Tomcat을 다른 서블릿 컨테이너로 교체

Spring MVC를 사용하는 web, RESTFul 애플리케이션은 일반적으로 spring-boot-starter-web 종속성을 추가합니다. 이는 기본적으로 Tomcat을 서버. 그러나 비동기식 및 비차단 아키텍처를 갖춘 고성능 서버인 Undertow와 같은 더 흥미로운 대안이 있습니다. 동시 연결을 효율적으로 수행하므로 고성능 애플리케이션에 적합합니다. Tomcat이 나쁘다는 것은 아니지만 Undertow에 기회를 줄 수는 있습니다.

언더토우 추가

Undertow 서버로 사용하려면 spring-boot-starter-web이 이미 추가한 spring-boot-starter-tomcat 종속성을 무시해야 합니다. 그런 다음 spring-boot-starter-undertow를 추가하세요.

pom.xml 사용:


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusions>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
</dependencies>
build.gradle 사용:


dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web') {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
    }
    implementation 'org.springframework.boot:spring-boot-starter-undertow'
}

저류 구성

application.properties 또는 application.yml을 통해 서버에서 사용할

IO 스레드 수와 작업자 스레드 수를 구성할 수 있습니다.

application.yml 사용


server:
  undertow:
    threads:
      io: 4
      worker: 64
application.properties 사용


server.undertow.threads.io=4
server.undertow.threads.worker=64
I/O

스레드는 비차단 작업을 수행하며 차단 작업을 수행해서는 안 됩니다. 애플리케이션에 도착하는 연결을 수신 대기한 다음 처리 대기열로 보내는 역할을 담당하기 때문입니다. 일반적인 값은 CPU 코어당 I/O 스레드 2개입니다.

작업자 스레드는 I/O 스레드에 의해 처리 대기열로 전송된 서블릿 요청과 같은 차단 작업을 실행합니다. 이상적인 값은 워크로드에 따라 다르지만 일반적으로 CPU 코어당 스레드를 10개 정도 구성하는 것이 좋습니다.

자세한 정보와 탐색할 수 있는 추가 옵션을 보려면

Undertow 문서를 참조하세요.

HTTP 응답 압축

데이터 압축은 HTTP 응답의 본문 크기를 줄이는 것을 목표로 하는 기능으로, 결과적으로 네트워크를 통해 전송되는 데이터 양을 줄여 애플리케이션의 성능을 향상시킬 수 있습니다.

Spring Boot에서 데이터 압축을 구성하는 것은 이 기능을 지원하므로 간단한 작업입니다.

application.yml 사용


server:
  compression:
    enabled: true
    mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
    min-response-size: 1024
application.properties 사용


server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
server.compression.min-response-size=1024
server.compression.enabled: 압축을 활성화/비활성화합니다.

server.compression.mime-types: 압축해야 하는 MIME 유형 목록.
server.compression.min-response-size: 압축을 수행하는 데 필요한 "
Content-Length"의 최소 크기입니다.

이것으로 기사의 첫 부분을 마치겠습니다. 다음 부분에서는 Spring Boot 애플리케이션의 성능을 더욱 향상시키기 위해 Hikari, JPA 및 Hibernate에 대해 자세히 알아보고 이를 구성하는 방법을 배우게 됩니다.

위 내용은 Spring Boot 애플리케이션의 성능 개선 - 1부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.