大公司为什么禁止SpringBoot项目使用Tomcat?

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

在SpringBoot框架中我们使用最多的是Tomcat这是SpringBoot默认的容器技术而且是内嵌式的Tomcat。同时SpringBoot也支持Undertow容器我们可以很方便的用Undertow替换Tomcat而Undertow的性能和内存使用方面都优于Tomcat那我们如何使用Undertow技术呢本文将为大家细细讲解。

SpringBoot中的Tomcat容器

SpringBoot可以说是目前最火的Java Web框架了。它将开发者从繁重的xml解救了出来让开发者在几分钟内就可以创建一个完整的Web服务极大的提高了开发者的工作效率。Web容器技术是Web项目必不可少的组成部分因为任Web项目都要借助容器技术来运行起来。在SpringBoot框架中我们使用最多的是Tomcat这是SpringBoot默认的容器技术而且是内嵌式的Tomcat。

SpringBoot设置Undertow

对于Tomcat技术Java程序员应该都非常熟悉它是Web应用最常用的容器技术。我们最早的开发的项目基本都是部署在Tomcat下运行那除了Tomcat容器SpringBoot中我们还可以使用什么容器技术呢没错就是题目中的Undertow容器技术。SrpingBoot已经完全继承了Undertow技术我们只需要引入Undertow的依赖即可如下图所示。推荐最全面的Java面试网站

配置好以后我们启动应用程序发现容器已经替换为Undertow。那我们为什么需要替换Tomcat为Undertow技术呢

本文已经收录到Github仓库该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点欢迎star~

Github地址

如果访问不了Github可以访问gitee地址。

gitee地址

Tomcat与Undertow的优劣对比

Tomcat是Apache基金下的一个轻量级的Servlet容器支持Servlet和JSP。Tomcat具有Web服务器特有的功能包括 Tomcat管理和控制平台、安全局管理和Tomcat阀等。Tomcat本身包含了HTTP服务器因此也可以视作单独的Web服务器。但是Tomcat和ApacheHTTP服务器不是一个东西ApacheHTTP服务器是用C语言实现的HTTP Web服务器。Tomcat是完全免费的深受开发者的喜爱。

Undertow是Red Hat公司的开源产品, 它完全采用Java语言开发是一款灵活的高性能Web服务器支持阻塞IO和非阻塞IO。由于Undertow采用Java语言开发可以直接嵌入到Java项目中使用。同时 Undertow完全支持Servlet和Web Socket在高并发情况下表现非常出色。

我们在相同机器配置下压测Tomcat和Undertow得到的测试结果如下所示QPS测试结果对比 Tomcat

Undertow

内存使用对比

Tomcat

Undertow

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

最后

SpingBoot中我们既可以使用Tomcat作为Http服务也可以用Undertow来代替。Undertow在高并发业务场景中性能优于Tomcat。所以如果我们的系统是高并发请求不妨使用一下Undertow你会发现你的系统性能会得到很大的提升。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: SpringTomcat