码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 65.Undertow代替Tomcat


    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容器

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

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

    1. private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException
    2. {
    3. File desc = new File(uploadDir + File.separator + fileName);
    4. if (!desc.getParentFile().exists())
    5. {
    6. desc.getParentFile().mkdirs();
    7. }
    8. // undertow文件上传,因底层实现不同,无需创建新文件
    9. // if (!desc.exists())
    10. // {
    11. // desc.createNewFile();
    12. // }
    13. return desc;
    14. }

  • 相关阅读:
    【Crypto | CTF】BugKu 简单的RSA
    查杀Linux服务器病毒进程并对Linux中的文件描述符FD进行简单探索
    Spring 深入——IoC 容器 01
    多场景通吃,INDEMIND视觉导航方案赋能服务机器人更多可能
    阿里云服务器配置选择指南(2023新版教程)
    docker安装mysql(单体)
    Git——新建本地仓库并上传到Gitee
    SpringBoot实现集成Mybatis-Plus和SwaggerUI——基于SpringBoot和Vue的后台管理系统项目系列博客(八)
    Day05-Python组合数据类型
    【LeetCode】图解 904. 水果成篮
  • 原文地址:https://blog.csdn.net/m0_45209551/article/details/134407072
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号