"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Spring Boot 애플리케이션의 성능 개선 - 1부

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

2024-11-08에 게시됨
검색:428

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

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

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

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

언더토우 추가

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

pom.xml 사용:


org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat 제외> 제외> 의존성> org.springframework.boot spring-boot-starter-undertow 의존성> 종속성>

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

build.gradle 사용:


종속성 { 구현('org.springframework.boot:spring-boot-starter-web') { 제외 그룹: 'org.springframework.boot', 모듈: 'spring-boot-starter-tomcat' } 구현 'org.springframework.boot:spring-boot-starter-undertow' }

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

저류 구성

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

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

application.yml 사용


섬기는 사람: 하류: 스레드: io:4 근로자: 64명

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

application.properties 사용


server.undertow.threads.io=4 server.undertow.threads.worker=64

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

I/O

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

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

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

Undertow 문서로 이동하세요.

HTTP 응답 압축

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

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

application.yml 사용


섬기는 사람: 압축: 활성화됨: 사실 MIME 유형: 텍스트/html,텍스트/xml,텍스트/일반,텍스트/css,텍스트/javascript,application/javascript,application/json 최소 응답 크기: 1024

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

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

    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

server.compression.enabled: 압축을 활성화/비활성화합니다.

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

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

릴리스 선언문 이 기사는 https://dev.to/mathstylish/melhorando-a-performance-de-aplicacoes-spring-boot-parte-i-58jl?1에서 복제됩니다.1 침해 사항이 있는 경우, [email protected]으로 문의하시기 바랍니다. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3