Springboot实现将默认tomcat容器改为Undertow

 更新时间:2025年11月28日 08:59:34   作者:weixin_42412601  
Undertow是一个高性能的Java Web服务器,支持Servlet和WebSocket,适用于高并发场景,Spring Boot可以使用Undertow作为嵌入式服务器,通过JMeter进行压力测试,展示了Undertow在高并发下的良好性能

Undertow是啥

Undertow是Red Hat公司的开源产品, 它完全采用Java语言开发,是一款灵活的高性能Web服务器,支持阻塞IO和非阻塞IO。

由于Undertow采用Java语言开发,可以直接嵌入到Java项目中使用。同时, Undertow完全支持Servlet和Web Socket,在高并发情况下表现非常出色。

undertow 是一个服务器,在相同资源使用量的情况下 undertow 比 tomcat 有更好的吞吐量和较低的访问时延。

Springboot使用Undertow

依赖:

        <!--移除tomcat依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--增加Untertow 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>

使用jmeter做压力测试:10000次的并发测试

https://blog.csdn.net/weixin_42412601/article/details/107117736

接口:

    @RequestMapping("testStudent")
    @ResponseBody
    public Object testStudent(){
        return "test";
    }

三次测试结果

吞吐量

tomcat      3679  3671 3706    
undertow    5130 4943 5058 

参数设置:

https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#server-properties

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java构建树形结构的实现过程

    java构建树形结构的实现过程

    文章介绍了五种构建树形结构的方式,包括定义实体类、利用Map集合、使用Stream流、基于Hutool以及MyBatis-Plus的@TableName属性,最后,还提供了一个基于Java实现树结构模糊搜索功能的示例
    2025-11-11
  • 浅谈Java自动装箱与拆箱及其陷阱

    浅谈Java自动装箱与拆箱及其陷阱

    下面小编就为大家带来一篇浅谈Java自动装箱与拆箱及其陷阱。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • mybatis-plus 实现分页查询的示例代码

    mybatis-plus 实现分页查询的示例代码

    本文介绍了在MyBatis-Plus中实现分页查询,包括引入依赖、配置分页插件、使用分页查询以及在控制器中调用分页查询的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • IDEA POJO开发神器之Groovy的使用详解

    IDEA POJO开发神器之Groovy的使用详解

    这篇文章主要介绍了IDEA POJO开发神器之Groovy的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • springboot+vue实现websocket配置过程解析

    springboot+vue实现websocket配置过程解析

    这篇文章主要介绍了springboot+vue实现websocket配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java实现Excel导入导出数据库的方法示例

    Java实现Excel导入导出数据库的方法示例

    这篇文章主要介绍了Java实现Excel导入导出数据库的方法,结合实例形式分析了java针对Excel的读写及数据库操作相关实现技巧,需要的朋友可以参考下
    2017-08-08
  • mybatis-plus报错net.sf.jsqlparser.statement.select.SelectBody的问题解决

    mybatis-plus报错net.sf.jsqlparser.statement.select.SelectBody的

    本文主要介绍了mybatis-plus报错net.sf.jsqlparser.statement.select.SelectBody的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • smslib发短信实例代码(电脑发短信)

    smslib发短信实例代码(电脑发短信)

    smslib发短信实例,大家可以参考使用开发自己的程序
    2013-12-12
  • Java异常--常见方法--自定义异常--增强try(try-with-resources)详解

    Java异常--常见方法--自定义异常--增强try(try-with-resources)详解

    这篇文章主要介绍了Java异常--常见方法--自定义异常--增强try(try-with-resources)的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Java解析DICOM图之如何获得16进制数据详解

    Java解析DICOM图之如何获得16进制数据详解

    DICOM就是医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052),下面这篇文章主要给大家介绍了关于Java解析DICOM图之如何获得16进制数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-10-10

最新评论