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的依赖即可,如下图所示。
配置好以后,我们启动应用程序,发现容器已经替换为undertow。那我们为什么需要替换tomcat为undertow技术呢?
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是最佳选择。
以上就是禁止springboot在项目中使用tomcat容器的原理是什么的详细内容。
