當前位置: 妍妍網 > 碼農

SpringBoot除了Tomcat的另外一個選擇

2024-05-22碼農

架構師(JiaGouX)

我們都是架構師!
架構未來,你來不來?

前言

在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,你會發現你的系統效能會得到很大的提升。

    如喜歡本文,請點選右上角,把文章分享到朋友圈
    如有想了解學習的技術點,請留言給若飛安排分享

    因公眾號更改推播規則,請點「在看」並加「星標」 第一時間獲取精彩技術分享

    ·END·

    相關閱讀:

    作者:阿邁達聊技術

    來源:toutiao.com/a6775476659416990212

    版權申明:內容來源網路,僅供學習研究,版權歸原創者所有。如有侵權煩請告知,我們會立即刪除並表示歉意。謝謝!

    架構師

    我們都是架構師!

    關註 架構師(JiaGouX),添加「星標」

    獲取每天技術幹貨,一起成為牛逼架構師

    技術群請 加若飛: 1321113940 進架構師群

    投稿、合作、版權等信箱: [email protected]