大厂禁止SpringBoot在项目使用Tomcat容器原理解析

 更新时间:2022年07月11日 08:45:40   作者:程序员追风  
这篇文章主要为大家介绍了大厂禁止SpringBoot在项目使用Tomcat原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

在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,你会发现你的系统性能会得到很大的提升。

以上就是大厂禁止SpringBoot在项目使用Tomcat原理解析的详细内容,更多关于SpringBoot禁止Tomcat的资料请关注脚本之家其它相关文章!

相关文章

  • Java异常处理实例教程

    Java异常处理实例教程

    这篇文章主要为大家分享一份非常详细的Java异常处理实例教程,帮助大家更好的学习java异常处理,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Java中ArrayList类用法详解

    Java中ArrayList类用法详解

    这篇文章主要给大家介绍了关于Java中ArrayList类用法的相关资料,ArrayList是Java中的一种常见的数据结构,它实现了List接口,是线程不安全的动态数组,需要的朋友可以参考下
    2023-09-09
  • Java字符串技巧之删除标点或最后字符的方法

    Java字符串技巧之删除标点或最后字符的方法

    这篇文章主要介绍了Java字符串技巧之删除标点或最后字符的方法,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • Guava轻松创建和管理不可变集合方法技巧

    Guava轻松创建和管理不可变集合方法技巧

    这篇文章主要为大家介绍了Guava轻松创建和管理不可变集合方法技巧示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Maven打包上云的实现步骤

    Maven打包上云的实现步骤

    本文主要介绍了Maven打包上云的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • java 单例模式容易忽略的细节

    java 单例模式容易忽略的细节

    这篇文章主要介绍了java 单例模式容易忽略的细节,帮助大家更好的理解和使用java 单例模式,感兴趣的朋友可以了解下
    2020-12-12
  • spring boot中内嵌redis的使用方法示例

    spring boot中内嵌redis的使用方法示例

    这篇文章主要给大家介绍了关于spring boot中内嵌redis使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • 详解Java爬虫利器Jsoup

    详解Java爬虫利器Jsoup

    Jsoup是一款Java语言开发的HTML解析器,用于解析HTML文档以及对HTML文档进行操作,处理等,本文就将详细给大家介绍一下Java中的爬虫利器Jsoup,感兴趣的同学可以参考一下
    2023-06-06
  • SpringBoot利用@Validated注解优雅实现参数校验

    SpringBoot利用@Validated注解优雅实现参数校验

    在开发 Web 应用时,用户输入的合法性校验是保障系统稳定性的基础,​Spring Boot 的 @Validated 注解 提供了一种更优雅的解决方案,下面就跟随小编一起学习一下吧
    2025-04-04
  • SpringBoot整合Minio实现上传文件的完整步骤记录

    SpringBoot整合Minio实现上传文件的完整步骤记录

    MinIO是一个基于Apache License v2.0开源协议的对象存储服务,它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,下面这篇文章主要给大家介绍了关于SpringBoot整合Minio实现上传文件的完整步骤,需要的朋友可以参考下
    2022-05-05

最新评论