前言
在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,你會發現你的系統性能會得到很大的提升。
審核編輯:湯梓紅
-
容器
+關注
關注
0文章
507瀏覽量
22376 -
spring
+關注
關注
0文章
340瀏覽量
14910 -
Boot
+關注
關注
0文章
153瀏覽量
36576 -
tomcat
+關注
關注
0文章
31瀏覽量
4980 -
SpringBoot
+關注
關注
0文章
175瀏覽量
330
原文標題:為什么建議你替換掉 SpringBoot 框架中的 Tomcat ?
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
springboot的輕量替代框架-Solon

基于spring boot的linux服務器部署方法
SpringBoot應用啟動運行run方法
SpringBoot配置嵌入式Servlet
什么時候獲取嵌入式的Servlet容器并啟動Tomcat
想把我自定義的內核文件替換掉開發板里的內核如何操作?
Springboot整合netty框架實現終端、通訊板子(單片機)TCP/UDP通信案例

什么是 SpringBoot?

評論