为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow?
作者:阿迈达
来源:toutiao.com/a6775476659416990212
前言
在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的依赖即可,如下图所示。
配置好以后,我们启动应用程序,发现容器已经替换为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,选择了Undertow?相关推荐
- 为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:阿迈达 toutiao.com/a6775476659416 ...
- 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:阿迈达 toutiao.com/a6775476659416 ...
- undertow 怎么创建线程_为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow
点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:阿迈达 toutiao.com/a6775476659416990212/ 前言 在 ...
- 为什么很多SpringBoot开发者放弃了Tomcat而选择Undertow
一.前言 在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat.同时,SpringBoot也支持Undertow容器,我们可以 ...
- Undertow技术:为什么很多Spring Boot开发者放弃了Tomcat
作者:阿迈达聊技术 https://www.toutiao.com/a6775476659416990212 前言 在 Spring Boot 框架中,我们使用最多的是 Tomcat,这是 Sprin ...
- spring boot +vue用什么记录登录状态_为什么很多Spring Boot开发者放弃了Tomcat
前言 在 Spring Boot 框架中,我们使用最多的是 Tomcat,这是 Spring Boot 默认的容器技术,而且是内嵌式的 Tomcat.同时,Spring Boot 也支持 Undert ...
- idea部署springboot项目到外部tomcat
[README] 本文旨在记录idea部署springboot项目到外部tomcat的步骤: 第一次部署会踩很多坑儿,多查google,多重试: 第一次部署,不建议手动录入依赖,因为有可能遗漏:而且网 ...
- 记一次定位解决SpringBoot中内嵌Tomcat的Bug问题
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 segmentfault.com/a/1190000038760707 推荐:h ...
- 放弃 PHP,选择 Node.JS 的 8 个理由!
[CSDN 编者按]谈到 PHP 逐渐被看衰这个现象,我想起前两天看到一篇浏览器领域龙头老大的争夺战的有趣报道,报道里大致讲了几个浏览器奋发图强夺得宝座之后又不思进取,然后逐渐被超越的演化史.更往远看 ...
最新文章
- RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例
- ubuntu中使用apt命令安装ipython失败解决方案
- 限量!Alibaba首发“Java成长笔记”,差距不止一点点
- STDIN_FILENO和stdin区别
- 【C/C++】变量做数组长度
- 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller
- 从位图数据取得位图句柄
- 页面图片延时加载(附实例下载)
- unity字符串换行符_unity如何在中文文本换行时实现排版换行,避免标点符号出现在行首等比较丑的情况?...
- WPF/Silverlight中MVVM运用
- 卑微测试员自述:入职新公司一个月,就让我做自动化测试?!
- 《机械工程测试技术基础》教学大纲
- i3 10105F参数配置 i3 10105F怎么样
- 阿尔伯塔大学的计算机科学专业好吗,[阿尔伯塔大学]计算机/计算机工程专业
- 虚拟机安装+win10系统
- 大数据时代改变生活九大应用领域
- 创维E900V22C、E900V22D系列-UWE5621DS芯片语音免拆卡刷固件(当贝桌面)《创维简约开机动画》
- java 一天的结束时间_java怎么获取一天的开始时间和结束时间
- 无盘服务器磁盘缓存,网众无盘教程 教你挂盘设置缓存
- (转)基金知识综合帖
热门文章
- java 数字三角形_数字三角形 Number Triangles(java的MLE解决办法)
- tkinter实现滚动文本框
- PTA基础编程题目集-7-38 数列求和-加强版
- virtualbox 创建桥接网络_VirtualBox桥接网络的简单配置,让虚拟机直接访问网络
- python将注释写入xml_python 注释xml的元素
- delphi dbgrid 上下移动并获取选中值_如何在UE4移动端中实现HZB?
- php安卓传输图片到mysql_php – Android应用程序将图像发送到MySQL
- 计算机右键功能总结,计算机基础知识:右键快捷菜单功能介绍
- html false插件,解析webpack插件html-webpack-plugin
- leetcode1017