Maison  >  Article  >  Java  >  Améliorer les performances des applications Spring Boot - Partie I

Améliorer les performances des applications Spring Boot - Partie I

王林
王林original
2024-08-22 12:33:43614parcourir

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

Lors du démarrage des applications Spring Boot, nous utilisons généralement les paramètres par défaut fournis par les démarreurs, ce qui est suffisant dans la plupart des cas. Cependant, si nous avons besoin de performances, des ajustements spécifiques peuvent être apportés, comme cela sera démontré dans la première partie de cet article.

Remplacement de Tomcat par un autre conteneur de servlets

Les

Applications web, RESTFul, qui utilisent Spring MVC, ajoutent généralement la dépendance spring-boot-starter-web, qui utilise par défaut Tomcat comme Serveur web. Il existe cependant des alternatives plus intéressantes, comme Undertow, qui est un serveur web performant, avec une architecture asynchrone et non bloquante, qui permet de gérer un grand nombre de connexions simultanées de manière efficace, ce qui le rend adapté aux applications hautes performances. Nous ne disons pas que Tomcat est mauvais, mais nous pouvons donner une chance à Undertow.

Ajout de Undertow au Printemps

Pour que nous puissions utiliser Undertow comme serveur web, nous devons ignorer la dépendance spring-boot-starter-tomcat que spring-boot-starter-web ajoute déjà puis ajoutez le spring-boot-starter-undertow.

Utilisation de 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>

Utilisation de 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'
}

Configuration du contre-courant

Grâce à application.properties ou application.yml, nous pouvons configurer le nombre de threads IO et le nombre de threads de travail que nous voulons que le serveur utilise.

Utiliser application.yml

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

Utilisation de application.properties

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

E/S Threads effectuent des opérations non bloquantes et ne doivent jamais effectuer d'opérations bloquantes, car ils sont chargés d'écouter les connexions arrivant dans l'application, puis de les envoyer vers une file d'attente de traitement. Une valeur courante est deux Threads d'E/S par cœur de processeur.

Les threads de travail exécutent des opérations de blocage, telles que les requêtes de servlet qui ont été envoyées à la file d'attente de traitement par les Threads d'E/S. La valeur idéale dépend de la charge de travail, mais il est généralement recommandé de configurer environ 10 threads par cœur de CPU.

Pour des informations plus détaillées et plus d'options pouvant être explorées, accédez simplement à la documentation Undertow.

Compression des réponses HTTP

La compression des données est une fonctionnalité qui vise à réduire la taille du corps des réponses HTTP, ce qui peut à son tour améliorer les performances de notre application en réduisant la quantité de données transmises sur le réseau.

La configuration de la compression des données dans Spring Boot est une tâche triviale, car elle prend en charge cette fonctionnalité.

Utiliser 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

Utilisation de 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 : Active/désactive la compression.
server.compression.mime-types : Liste des types MIME qui doivent être compressés.
server.compression.min-response-size : taille minimale de "Content-Length" nécessaire à l'exécution de la compression.

Sur ce, nous clôturons la première partie de l'article. Dans la partie suivante, nous en apprendrons davantage sur Hikari, JPA et Hibernate et apprendrons comment les configurer, afin d'améliorer encore les performances des applications Spring Boot.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn