”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 提高 Spring Boot 应用程序的性能 - 第一部分

提高 Spring Boot 应用程序的性能 - 第一部分

发布于2024-11-08
浏览:387

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

启动Spring Boot应用程序时,我们通常使用启动器提供的默认设置,这对于大多数情况来说已经足够了。但是,如果我们需要性能,则可以进行具体调整,如本文第一部分所示。

Tomcat 替换为另一个 servlet 容器

应用程序webRESTFul,使用Spring MVC,一般添加spring-boot-starter-web依赖,默认使用Tomcat作为服务器网络。然而,还有更有趣的替代方案,例如Undertow,这是一个高性能的web服务器,具有异步和非阻塞架构,这使得它能够处理大量数据高效的同时连接,使其适合高性能应用。我们并不是说 Tomcat 不好,但我们可以给 Undertow.

一个机会。

Undertow 添加到 Spring

为了让我们使用Undertow作为web服务器,我们需要忽略 spring-boot-starter-web 已经添加的 spring-boot-starter-tomcat 依赖然后添加 spring-boot-starter-undertow.

使用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,我们可以配置我们希望服务器使用多少个IO线程和多少个工作线程

使用application.yml

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

使用 application.properties

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

I/O 线程执行非阻塞操作,并且永远不应该执行阻塞操作,因为它们负责侦听到达应用程序的连接,然后将它们发送到处理队列。常见值为每个 CPU 核心两个 I/O 线程

工作线程执行阻塞操作,例如由I/O Threads发送到处理队列的Servlet请求。理想值取决于工作负载,但通常建议每个 CPU 核心配置 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