SpringBoot
中我们既可以使用Tomcat
作为Http
服务,也可以用Undertow
来代替。Undertow
在高并发业务场景中,性能优于Tomcat
。所以,如果我们的系统是高并发请求,不妨使用一下Undertow
,你会发现你的系统性能会得到很大的提升。
1、ruoyi-framework\pom.xml
模块修改web容器依赖,使用undertow来替代tomcat容器
ruoyi-framework中
org.springframework.boot
spring-boot-starter-web
spring-boot-starter-tomcat
org.springframework.boot
ruoyi-admin中添加
org.springframework.boot
spring-boot-starter-undertow
2、修改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
- # 是否分配的直接内存
- direct-buffers: true
- threads:
- # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
- io: 8
- # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
- worker: 256
3、修改文件上传工具类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;
- }