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, 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.
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' }
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
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.
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!