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.
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.
.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.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-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' }
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=64Les
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.
Lesthreads 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.
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.
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