"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Améliorer les performances des applications Spring Boot - Partie I

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

Publié le 2024-09-13
Parcourir:448

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 servlet

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, doté d'une architecture asynchrone et non bloquante, qui lui permet de gérer un grand nombre de 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 à Spring

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 :

org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-tomcatorg.springframework.bootspring-boot-starter-undertow

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.

Utilisation d'application.yml

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

Utilisation d'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 à 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é.

Utilisation d'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 d'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.

C'est ainsi que 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.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/mathstylish/melhorando-a-performance-de-aplicacoes-spring-boot-parte-i-58jl?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3