关于后端:大公司为什么禁止SpringBoot项目使用Tomcat

2次阅读

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

本文曾经收录到 Github 仓库,该仓库蕴含 计算机根底、Java 根底、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享 等外围知识点,欢送 star~

Github 地址:https://github.com/Tyson0314/…


前言

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

参考链接:原文地址:toutiao.com/a677547665941699021


最初给大家分享一个 Github 仓库,下面有大彬整顿的 300 多本经典的计算机书籍 PDF,包含 C 语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生 等,能够 star 一下,下次找书间接在下面搜寻,仓库继续更新中~

Github 地址:https://github.com/Tyson0314/…

正文完
 0