当前位置:首页 > 科技  > 软件

大厂内幕:SpringBoot项目为何弃用Tomcat,转投Undertow怀抱?

来源: 责编: 时间:2024-07-15 17:13:53 526观看
导读对于Tomcat技术,Java程序员应该都非常熟悉,它是Web应用最常用的容器技术。我们最早的开发的项目基本都是部署在Tomcat下运行。在软件开发的浪潮中,技术的更迭总是让人目不暇接。在SpringBoot框架中,我们使用最多的是Tomca

对于Tomcat技术,Java程序员应该都非常熟悉,它是Web应用最常用的容器技术。我们最早的开发的项目基本都是部署在Tomcat下运行。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

在软件开发的浪潮中,技术的更迭总是让人目不暇接。在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

但是,许多大厂的SpringBoot项目纷纷弃用Tomcat,转而拥抱Undertow。这背后究竟隐藏着什么秘密?今天,就让我们一起揭开这层神秘的面纱。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

接下来先比较Tomcat与Undertow的优劣,我们从以下几个方面进行概述。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

看重点

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

Tomcat的优势:

7lO28资讯网——每日最新资讯28at.com

成熟与广泛使用:Tomcat是Apache基金会的开源项目,作为一个成熟的Web服务器和Servlet容器,它包含了HTTP服务器,因此也可以作为单独的Web服务器使用。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

丰富的功能:Tomcat提供了管理和控制平台、安全局管理和Tomcat阀等功能,这些都是Tomcat特有的功能。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

Undertow的优势:7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

高性能:Undertow基于非阻塞I/O和异步处理,能够提供更高的性能和更好的并发处理能力。它在高并发场景下尤其表现出色,能够处理更多请求并提供更快的响应速度。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

轻量级:Undertow的代码库相对较小,这使得它在资源占用和启动时间方面具有优势,特别适合需要快速启动和低内存占用的应用场景。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

更好的异步支持:Undertow提供了完善的异步支持,非常适合处理高并发的请求。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

易于配置:Undertow提供了简单易用的配置选项,使得开发者可以快速定制和部署应用程序。Spring Boot中的自动配置功能使得切换到Undertow变得非常简单。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

WebSocket支持:Undertow在WebSocket方面的实现更加轻量级和高效,这使得它在实时Web应用场景中更具优势。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

HTTP/2支持:Undertow支持HTTP/2协议,开发者可以利用HTTP/2的性能优势,如头部压缩、服务器推送等。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

总结:如果你的应用场景需要高性能、快速启动和轻量级的服务器,Undertow可能是更好的选择。而如果你需要一个成熟、功能丰富的Web服务器,且对资源占用和并发处理能力要求不是特别高,Tomcat则可能更适合你的需求。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

大厂项目弃用Tomcat原因总结:在高并发系统中,Tomcat相对来说比较弱。在相同的机器配置下,模拟相等的请求数,Undertow在性能和内存使用方面都是最优的。并且Undertow新版本默认使用持久连接,这将会进一步提高它的并发吞吐能力。所以,如果是高并发的业务系统,Undertow是最佳选择。7lO28资讯网——每日最新资讯28at.com

一、什么是Undertow?

Undertow 是一个采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。Undertow 是红帽公司的开源产品,是 Wildfly 默认的 Web 服务器。Undertow 提供一个基础的架构用来构建 Web 服务器,这是一个完全为嵌入式设计的项目,提供易用的构建器 API,完全向下兼容 Java EE Servlet 3.1 和低级非堵塞的处理器。7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

Undertow的主要特点:7lO28资讯网——每日最新资讯28at.com

  • 高性能 在多款同类产品的压测中,在高并发情况下表现出色。
  • Servlet4.0 支持 它提供了对 Servlet4.0 的支持。
  • Web Socket 完全支持,包括JSR-356,用以满足 Web 应用巨大数量的客户端。
  • 内嵌式 它不需要容器,只需通过 API 即可快速搭建 Web 服务器。
  • 灵活性 交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。
  • 轻量级 它是一个 内嵌Web 服务器, 由两个核心 Jar 包组成

二、SpringBoot标准项目中如何使用Undertow

1.pom.xml中引入依赖7lO28资讯网——每日最新资讯28at.com

<!--  启动器依赖 --><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-web</artifactId>   <!-- 移除Tomcat的依赖 -->   <exclusions>       <exclusion>           <groupId>org.springframework.boot</groupId>           <artifactId>spring-boot-starter-tomcat</artifactId>       </exclusion>   </exclusions></dependency><!--   采用Undertow依赖 --><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-undertow</artifactId></dependency><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter</artifactId></dependency>

2.application.yml核心配置

server:  undertow:    # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程    io-threads: 2    # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载    worker-threads: 1000    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理    # 每块buffer的空间大小,越小的空间被利用越充分    buffer-size: 1024    # 是否分配的直接内存    direct-buffers: true

3.运行效果7lO28资讯网——每日最新资讯28at.com

图片7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

7lO28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-100983-0.html大厂内幕:SpringBoot项目为何弃用Tomcat,转投Undertow怀抱?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 13个 JavaScript 面试难题及代码实现

下一篇: OpenResty实战系列 | 执行流程与阶段详解

标签:
  • 热门焦点
  • 中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    2021年11月的时候,中兴先后发布了两款路由器产品,中兴AX5400和中兴AX5400 Pro,从产品命名上就不难看出这是隶属于同一系列的,但在外观设计上这两款产品可以说是完全没一点关系
  • 从 Pulsar Client 的原理到它的监控面板

    从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 一篇聊聊Go错误封装机制

    一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 学习JavaScript的10个理由...

    学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为&ldquo;纯欲天花板&rdquo;的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • 三星Galaxy Z Fold5今日亮相:厚度缩减但仍略显厚重

    三星Galaxy Z Fold5今日亮相:厚度缩减但仍略显厚重

    据官方此前宣布,三星将于7月26日也就是今天在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 微软发布Windows 11新版 引入全新任务栏状态

    微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
Top