为何不少Spring Boot开发者放弃了Tomcat

前言

 

在 Spring Boot 框架中,咱们使用最多的是 Tomcat,这是 Spring Boot 默认的容器技术,并且是内嵌式的 Tomcat。同时,Spring Boot 也支持 Undertow 容器,咱们能够很方便的用 Undertow 替换 Tomcat,而 Undertow 的性能和内存使用方面都优于Tomcat,那咱们如何使用 Undertow 技术呢?本文将为你们细细讲解。程序员

  Spring Boot 中的 Tomcat 容器

 

Spring Boot 能够说是目前最火的 Java Web 框架了。它将开发者从繁重的 XML 解救了出来,让开发者在几分钟内就能够建立一个完整的 Web 服务,极大的提升了开发者的工做效率。Web 容器技术是 Web 项目必不可少的组成部分,由于任 Web 项目都要借助容器技术来运行起来。在 Spring Boot 框架中,咱们使用最多的是 Tomcat,这是 Spring Boot 默认的容器技术,并且是内嵌式的 Tomcat。安全

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

Spring Boot 设置 Undertow

 

对于 Tomcat 技术,Java 程序员应该都很是熟悉,它是 Web 应用最经常使用的容器技术。咱们最先的开发的项目基本都是部署在 Tomcat 下运行,那除了 Tomcat 容器,Spring Boot 中咱们还可使用什么容器技术呢?没错,就是题目中的 Undertow 容器技术。Srping Boot 已经彻底继承了 Undertow 技术,咱们只须要引入 Undertow 的依赖便可,以下图所示。服务器

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

配置好之后,咱们启动应用程序,发现容器已经替换为 Undertow。并发

 

那么,咱们为何须要替换 Tomcat 为 Undertow 技术呢?框架

  Tomcat 与 Undertow 的优劣对比

 

Tomcat 是 Apache 基金下的一个轻量级的 Servlet 容器,支持 Servlet 和 JSP。Tomcat 具备 Web 服务器特有的功能,包括 Tomcat 管理和控制平台、安全局管理和 Tomcat 阀等。Tomcat 自己包含了 HTTP 服务器,所以也能够视做单独的 Web 服务器。可是,Tomcat 和 Apache HTTP 服务器不是一个东西,Apache HTTP 服务器是用 C 语言实现的 HTTP Web 服务器。Tomcat 是彻底免费的,深受开发者的喜好。ide

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

Undertow 是 Red Hat 公司的开源产品,它彻底采用 Java 语言开发,是一款灵活的高性能 Web 服务器,支持阻塞 IO 和非阻塞 IO。因为 Undertow 采用 Java 语言开发,能够直接嵌入到 Java 项目中使用。同时,Undertow 彻底支持 Servlet 和 Web Socket,在高并发状况下表现很是出色。高并发

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

咱们在相同机器配置下压测 Tomcat 和 Undertow,获得的测试结果以下所示:性能

 

  • QPS测试结果对比:测试

 

Tomcatblog

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

Undertow

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

  • 内存使用对比:

 

Tomcat watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk= Undertow watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 

经过测试发现,在高并发系统中 Tomcat 相对来讲比较弱。在相同的机器配置下,模拟相等的请求数,Undertow 在性能和内存使用方面都是最优的。而且 Undertow 新版本默认使用持久链接,这将会进一步提升它的并发吞吐能力。因此,若是是高并发的业务系统,Undertow 是最佳选择。

 

最后

 

Sping Boot 中咱们既可使用 Tomcat 做为 HTTP 服务,也能够用 Undertow 来代替。Undertow 在高并发业务场景中,性能优于 Tomcat。因此,若是咱们的系统是高并发请求,不妨使用一下 Undertow,你会发现你的系统性能会获得很大的提高。

https://mp.weixin.qq.com/s/7kTWnfko_3QKQCdcn-BegQ

相关文章
相关标签/搜索