作者:阿迈达

来源: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?相关推荐

  1. 为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:阿迈达 toutiao.com/a6775476659416 ...

  2. 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:阿迈达 toutiao.com/a6775476659416 ...

  3. undertow 怎么创建线程_为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:阿迈达 toutiao.com/a6775476659416990212/ 前言 在 ...

  4. 为什么很多SpringBoot开发者放弃了Tomcat而选择Undertow

    一.前言 在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat.同时,SpringBoot也支持Undertow容器,我们可以 ...

  5. Undertow技术:为什么很多Spring Boot开发者放弃了Tomcat

    作者:阿迈达聊技术 https://www.toutiao.com/a6775476659416990212 前言 在 Spring Boot 框架中,我们使用最多的是 Tomcat,这是 Sprin ...

  6. spring boot +vue用什么记录登录状态_为什么很多Spring Boot开发者放弃了Tomcat

    前言 在 Spring Boot 框架中,我们使用最多的是 Tomcat,这是 Spring Boot 默认的容器技术,而且是内嵌式的 Tomcat.同时,Spring Boot 也支持 Undert ...

  7. idea部署springboot项目到外部tomcat

    [README] 本文旨在记录idea部署springboot项目到外部tomcat的步骤: 第一次部署会踩很多坑儿,多查google,多重试: 第一次部署,不建议手动录入依赖,因为有可能遗漏:而且网 ...

  8. 记一次定位解决SpringBoot中内嵌Tomcat的Bug问题

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 segmentfault.com/a/1190000038760707 推荐:h ...

  9. 放弃 PHP,选择 Node.JS 的 8 个理由!

    [CSDN 编者按]谈到 PHP 逐渐被看衰这个现象,我想起前两天看到一篇浏览器领域龙头老大的争夺战的有趣报道,报道里大致讲了几个浏览器奋发图强夺得宝座之后又不思进取,然后逐渐被超越的演化史.更往远看 ...

最新文章

  1. RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例
  2. ubuntu中使用apt命令安装ipython失败解决方案
  3. 限量!Alibaba首发“Java成长笔记”,差距不止一点点
  4. STDIN_FILENO和stdin区别
  5. 【C/C++】变量做数组长度
  6. 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller
  7. 从位图数据取得位图句柄
  8. 页面图片延时加载(附实例下载)
  9. unity字符串换行符_unity如何在中文文本换行时实现排版换行,避免标点符号出现在行首等比较丑的情况?...
  10. WPF/Silverlight中MVVM运用
  11. 卑微测试员自述:入职新公司一个月,就让我做自动化测试?!
  12. 《机械工程测试技术基础》教学大纲
  13. i3 10105F参数配置 i3 10105F怎么样
  14. 阿尔伯塔大学的计算机科学专业好吗,[阿尔伯塔大学]计算机/计算机工程专业
  15. 虚拟机安装+win10系统
  16. 大数据时代改变生活九大应用领域
  17. 创维E900V22C、E900V22D系列-UWE5621DS芯片语音免拆卡刷固件(当贝桌面)《创维简约开机动画》
  18. java 一天的结束时间_java怎么获取一天的开始时间和结束时间
  19. 无盘服务器磁盘缓存,网众无盘教程 教你挂盘设置缓存
  20. (转)基金知识综合帖

热门文章

  1. java 数字三角形_数字三角形 Number Triangles(java的MLE解决办法)
  2. tkinter实现滚动文本框
  3. PTA基础编程题目集-7-38 数列求和-加强版
  4. virtualbox 创建桥接网络_VirtualBox桥接网络的简单配置,让虚拟机直接访问网络
  5. python将注释写入xml_python 注释xml的元素
  6. delphi dbgrid 上下移动并获取选中值_如何在UE4移动端中实现HZB?
  7. php安卓传输图片到mysql_php – Android应用程序将图像发送到MySQL
  8. 计算机右键功能总结,计算机基础知识:右键快捷菜单功能介绍
  9. html false插件,解析webpack插件html-webpack-plugin
  10. leetcode1017