«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Улучшение производительности приложений Spring Boot. Часть I.

Улучшение производительности приложений Spring Boot. Часть I.

Опубликовано 13 сентября 2024 г.
Просматривать:569

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

При запуске приложений Spring Boot мы обычно используем настройки по умолчанию, предоставленные стартером, чего достаточно для большинства случаев. Однако, если нам нужна производительность, можно внести определенные изменения, как будет показано в первой части этой статьи.

Замена Tomcat другим контейнером сервлетов

Приложения web, RESTFul, которые используют Spring MVC, обычно добавляют зависимость Spring-boot-starter-web, которая по умолчанию использует Tomcat в качестве сервера Интернет. Однако есть и более интересные альтернативы, такие как Undertow, который представляет собой высокопроизводительный веб сервер с асинхронной и неблокируемой архитектурой, позволяющей ему обрабатывать большое количество одновременных подключений, что делает его пригодным для высокопроизводительных приложений. Мы не говорим, что Tomcat плох, но мы можем дать Undertow.

шанс.

Добавление Undertow к Spring

Чтобы мы могли использовать Undertow в качестве веб сервера, нам нужно игнорировать зависимость Spring-boot-starter-tomcat, которую Spring-boot-starter-web уже добавляет а затем добавьте Spring-Boot-Starter-Untow.

Использование pom.xml:

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

Использование 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'
}

Настройка отката

С помощью application.properties или application.yml мы можем настроить, сколько потоков ввода-вывода и сколько рабочих потоков мы хотим, чтобы сервер использовал.

Использование application.yml

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

Использование application.properties

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

I/O Потоки выполняют неблокирующие операции и никогда не должны выполнять блокирующие операции, поскольку они отвечают за прослушивание соединений, поступающих в приложение, а затем отправку их в очередь обработки. Обычное значение — два потока ввода-вывода на одно ядро ​​ЦП.

рабочие потоки выполняют операции блокировки, такие как запросы сервлетов, отправленные в очередь обработки посредством ввода-вывода Потоки. Идеальное значение зависит от рабочей нагрузки, но обычно рекомендуется настраивать около 10 потоков на одно ядро ​​ЦП.

Для получения более подробной информации и дополнительных возможностей перейдите к документации Undertow.

Сжатие HTTP-ответов

Сжатие данных — это функция, целью которой является уменьшение размера тела HTTP-ответов, что, в свою очередь, может повысить производительность нашего приложения за счет уменьшения объема данных, передаваемых по сети.

Настройка сжатия данных в Spring Boot — тривиальная задача, поскольку он поддерживает эту функциональность.

Использование 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

Использование 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: включает/отключает сжатие.
server.compression.mime-types: Список типов MIME, которые следует сжимать.
server.compression.min-response-size: Минимальный размер «Content-Length», необходимый для выполнения сжатия.

На этом мы завершаем первую часть статьи. В следующей части мы узнаем больше о Hikari, JPA и Hibernate и научимся их настраивать, чтобы еще больше повысить производительность приложений Spring Boot.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mathstylish/melhorando-a- Performance-de-aplicacoes-spring-boot-parte-i-58jl?1 В случае нарушения прав обращайтесь по адресу [email protected]. удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3