При запуске приложений Spring Boot мы обычно используем настройки по умолчанию, предоставленные стартером, чего достаточно для большинства случаев. Однако, если нам нужна производительность, можно внести определенные изменения, как будет показано в первой части этой статьи.
Приложения web, RESTFul, которые используют Spring MVC, обычно добавляют зависимость Spring-boot-starter-web, которая по умолчанию использует Tomcat в качестве сервера Интернет. Однако есть и более интересные альтернативы, такие как Undertow, который представляет собой высокопроизводительный веб сервер с асинхронной и неблокируемой архитектурой, позволяющей ему обрабатывать большое количество одновременных подключений, что делает его пригодным для высокопроизводительных приложений. Мы не говорим, что Tomcat плох, но мы можем дать Undertow.
шанс.Чтобы мы могли использовать Undertow в качестве веб сервера, нам нужно игнорировать зависимость Spring-boot-starter-tomcat, которую Spring-boot-starter-web уже добавляет а затем добавьте Spring-Boot-Starter-Untow.
Использование pom.xml:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-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-ответов, что, в свою очередь, может повысить производительность нашего приложения за счет уменьшения объема данных, передаваемых по сети.
Настройка сжатия данных в 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.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3