"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Mejorando el rendimiento de las aplicaciones Spring Boot - Parte I

Mejorando el rendimiento de las aplicaciones Spring Boot - Parte I

Publicado el 2024-11-08
Navegar:900

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

Al iniciar aplicaciones Spring Boot, normalmente utilizamos la configuración predeterminada proporcionada por los principiantes, que es suficiente en la mayoría de los casos. Sin embargo, si necesitamos rendimiento, se pueden realizar ajustes específicos, como se demostrará en la primera parte de este artículo.

Reemplazo de Tomcat con otro contenedor de servlets

Aplicaciones web, RESTFul, que usan Spring MVC, generalmente agregan la dependencia spring-boot-starter-web, que por defecto usa Tomcat como servidor web. Sin embargo, existen alternativas más interesantes, como Undertow, que es un servidor web de alto rendimiento, con una arquitectura asíncrona y sin bloqueo, que le permite manejar una gran cantidad de de conexiones simultáneas de manera eficiente, lo que lo hace adecuado para aplicaciones de alto rendimiento. No estamos diciendo que Tomcat sea malo, pero podemos darle una oportunidad a Undertow.

.

Añadiendo Resaca a Primavera

Para que podamos usar Undertow como servidor web, debemos ignorar la dependencia spring-boot-starter-tomcat que spring-boot-starter-web ya agrega y luego agregue la resaca de arranque de resorte.

Usando pom.xml:


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

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

Usando 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'
}

Configurando resaca

A través de application.properties o application.yml, podemos configurar cuántos subprocesos IO y cuántos subprocesos de trabajo queremos que use el servidor.

Usando aplicación.yml

server:
  undertow:
    threads:
      io: 4
      worker: 64

Usando aplicaciones.properties

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

E/S Subprocesos realizan operaciones sin bloqueo y nunca deben realizar operaciones de bloqueo, ya que son responsables de escuchar las conexiones que llegan a la aplicación y luego enviarlas a una cola de procesamiento. Un valor común es dos E/S Subprocesos por núcleo de CPU.

subprocesos de trabajo ejecutan operaciones de bloqueo, como solicitudes de servlet que fueron enviadas a la cola de procesamiento por E/S Subprocesos. El valor ideal depende de la carga de trabajo, pero generalmente se recomienda configurar alrededor de 10 subprocesos por núcleo de CPU.

Para obtener información más detallada y más opciones que se pueden explorar, simplemente vaya a la documentación de Undertow.

Comprimir respuestas HTTP

La compresión de datos es una característica que tiene como objetivo reducir el tamaño del cuerpo de las respuestas HTTP, lo que a su vez puede mejorar el rendimiento de nuestra aplicación al reducir la cantidad de datos transmitidos a través de la red.

Configurar la compresión de datos en Spring Boot es una tarea trivial, ya que admite esta funcionalidad.

Usando aplicación.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

Usando aplicaciones.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: habilita/deshabilita la compresión.
server.compression.mime-types: Lista de tipos MIME que deben comprimirse.
server.compression.min-response-size: tamaño mínimo de "Content-Length" que es necesario para realizar la compresión.

Con esto cerramos la primera parte del artículo. En la siguiente parte, aprenderemos más sobre Hikari, JPA e Hibernate y cómo configurarlos para mejorar aún más el rendimiento de las aplicaciones Spring Boot.

Declaración de liberación Este artículo se reproduce en: https://dev.to/mathstylish/melhorando-a-performance-de-aplicacoes-spring-boot-parte-i-58jl?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3