首页 > 其他分享 >大公司为什么禁止SpringBoot项目使用Tomcat?

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

时间:2023-01-28 18:13:43浏览次数:62  
标签:Web 禁止 Undertow SpringBoot Tomcat 容器 Java

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

Github地址:https://github.com/Tyson0314/Java-learning


前言

在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所有操作

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是最佳选择。

最后

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

参考链接:原文地址:toutiao.com/a677547665941699021


最后给大家分享一个Github仓库,上面有大彬整理的300多本经典的计算机书籍PDF,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~

Github地址https://github.com/Tyson0314/java-books

标签:Web,禁止,Undertow,SpringBoot,Tomcat,容器,Java
From: https://www.cnblogs.com/tyson03/p/17071027.html

相关文章

  • IDE中自带的java springboot项目的密码加密和解密
    IDE里搜这个类org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI,跑类的main方法进行加密参数:input=你的明文密码password=固定你自己公司的某个固定值algorithm=PBEWi......
  • 彻底禁止Windows 10更新,你的电脑你做主
    5月推送的Windows102004版本可以说是Windows10史上最曲折的版本更新升级,带来很多新特性的同时也收获了很多新bug。对于部分倒霉蛋用户,Windows10每次更新升级都......
  • 如何禁止Chrome弹出无法更新的提示窗?
    你的谷歌浏览器是不是也经常这样弹窗提示无法更新呢?无法更新ChromeChrome无法更新至最新版本,因此您未能获得最新的功能和安全修复程序。下面给出解决方法,这样就可以清静......
  • IDEA与tomcat相关配置与Servlet_体系结构
    IDEA与tomcat相关配置1.IDEA会为了每一个tomcat部署的项目单独与建立一份配置文件.   查看控制台的log:UsingCATAL......
  • springboot关闭druid控制台
    yml配置文件里面找到如下三处配置并设置为false:spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedriverClassName:com.mysql.cj......
  • SpringBoot 项目打包时出现 Cannot find 'version' in class org.springframework.boo
    前言今天在处理项目打包时突然蹦出来这么个错误信息,看得我一头雾水,Google一番后找到了解决方案故记录下解决问题出在这段配置上这里不改画蛇添足的加上了一个<v......
  • Tomcat 解决一些基本配置问题。
    解决Tomcat进入manger管理界面需要账号密码问题第一步,打开Tomcat的conf文件夹进入tomcat-users.xml文件在标签里面复制以下内容<rolerolename="admin-gui"/>``<ro......
  • SpringBoot2笔记-1.1 Spring与SpringBoot
    SpringSpring能力强大Spring生态丰富Spring5重大升级-微服务-响应式编程-云服务-……-web开发-数据访问-安全控制-分布式-消息服务-移动开......
  • SpringBoot2课程笔记
    学完了SSM系列后,可以学习SpringBoot系列内容了。课程选择了【尚硅谷】SpringBoot2零基础入门教程进行学习。同属于尚硅谷课程,衔接学习顺畅,雷凤阳老师主讲。课程26小......
  • springboot前端传后端集合的一些问题
     前端不能加qs来处理集合对象,后端接收需要加@RequestBody  mybatis用foreach遍历集合对象:<updateid="updateBatch"parameterType="news">updatenew......