开发喵星球

若依使用undertow来替代tomcat容器(五十二)

SpingBoot中我们既可以使用Tomcat作为Http服务,也可以用Undertow来代替。Undertow在高并发业务场景中,性能优于Tomcat。所以,如果我们的系统是高并发请求,不妨使用一下Undertow,你会发现你的系统性能会得到很大的提升。

一、使用undertow来替代tomcat容器

文件位置:ruoyi-framework\pom.xml

 <!-- SpringBoot Web容器 -->
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
     <exclusions>
         <exclusion>
             <artifactId>spring-boot-starter-tomcat</artifactId>
             <groupId>org.springframework.boot</groupId>
         </exclusion>
     </exclusions>
</dependency>

<!-- web 容器使用 undertow -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

二、修改application.yml,使用undertow来替代tomcat容器

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为80
  port: 80
  servlet:
    # 应用的访问路径
    context-path: /
  # undertow 配置
  undertow:
    # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
    max-http-post-size: -1
    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
    # 每块buffer的空间大小,越小的空间被利用越充分
    buffer-size: 512
    # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
    io-threads: 8
    # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
    worker-threads: 256
    # 是否分配的直接内存
    direct-buffers: true

三、修改文件上传工具类FileUploadUtils.java

private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException
{
    File desc = new File(uploadDir + File.separator + fileName);

    if (!desc.getParentFile().exists())
    {
        desc.getParentFile().mkdirs();
    }
    // undertow文件上传,因底层实现不同,无需创建新文件
    // if (!desc.exists())
    // {
    //    desc.createNewFile();
    // }
    return desc;
}
   
分类:Java/OOP 作者:无限繁荣, 吴蓉 发表于:2023-11-22 14:52:12 阅读量:102
<<   >>


powered by kaifamiao