关于tomcat:为什么很多SpringBoot开发者放弃了Tomcat选择了Undertow

33次阅读

共计 1724 个字符,预计需要花费 5 分钟才能阅读完成。

我的公众号:MarkerHub,Java 网站:https://markerhub.com

更多精选文章请点击:Java 笔记大全.md

小 Hub 领读:

Undertow 的性能和内存应用方面都优于 Tomcat,这也是为啥 Undertow 能流行起来的起因!你也能够试试,在 Springboot 我的项目中切换及其简略!


  • 作者:阿迈达
  • 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 是完全免费的,深受开发者的青睐。([](http://134.175.97.123:8888/home?id=62))

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,你会发现你的零碎性能会失去很大的晋升。

举荐浏览

Java 笔记大全.md

太赞了,这个 Java 网站,什么我的项目都有!https://markerhub.com

这个 B 站的 UP 主,讲的 java 真不错!

正文完
 0