Springboot实现将默认tomcat容器改为Undertow
作者: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

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