<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么很多 SpringBoot 開發(fā)者放棄了 Tomcat,選擇了 Undertow?

          共 1803字,需瀏覽 4分鐘

           ·

          2022-06-12 20:26

          來源:阿邁達(dá)

          toutiao.com/a6775476659416990212


          • 前言
          • SpringBoot中的Tomcat容器
          • SpringBoot設(shè)置Undertow
          • Tomcat與Undertow的優(yōu)劣對比
          • 最后

          Hollis的新書限時折扣中,一本深入講解Java基礎(chǔ)的干貨筆記!

          前言

          在SpringBoot框架中,我們使用最多的是Tomcat,這是SpringBoot默認(rèn)的容器技術(shù),而且是內(nèi)嵌式的Tomcat。

          同時,SpringBoot也支持Undertow容器,我們可以很方便的用Undertow替換Tomcat,而Undertow的性能和內(nèi)存使用方面都優(yōu)于Tomcat,那我們?nèi)绾问褂肬ndertow技術(shù)呢?本文將為大家細(xì)細(xì)講解。

          SpringBoot中的Tomcat容器

          SpringBoot可以說是目前最火的Java Web框架了。它將開發(fā)者從繁重的xml解救了出來,讓開發(fā)者在幾分鐘內(nèi)就可以創(chuàng)建一個完整的Web服務(wù),極大的提高了開發(fā)者的工作效率。Web容器技術(shù)是Web項目必不可少的組成部分,因為任Web項目都要借助容器技術(shù)來運行起來。

          在SpringBoot框架中,我們使用最多的是Tomcat,這是SpringBoot默認(rèn)的容器技術(shù),而且是內(nèi)嵌式的Tomcat。

          SpringBoot設(shè)置Undertow

          對于Tomcat技術(shù),Java程序員應(yīng)該都非常熟悉,它是Web應(yīng)用最常用的容器技術(shù)。我們最早的開發(fā)的項目基本都是部署在Tomcat下運行,那除了Tomcat容器,SpringBoot中我們還可以使用什么容器技術(shù)呢?

          沒錯,就是題目中的Undertow容器技術(shù)。SrpingBoot已經(jīng)完全繼承了Undertow技術(shù),我們只需要引入Undertow的依賴即可,如下圖所示。

          配置好以后,我們啟動應(yīng)用程序,發(fā)現(xiàn)容器已經(jīng)替換為Undertow。

          那我們?yōu)槭裁葱枰鎿QTomcat為Undertow技術(shù)呢?

          Tomcat與Undertow的優(yōu)劣對比

          Tomcat是Apache基金下的一個輕量級的Servlet容器,支持Servlet和JSP。Tomcat具有Web服務(wù)器特有的功能,包括 Tomcat管理和控制平臺、安全局管理和Tomcat閥等。Tomcat本身包含了HTTP服務(wù)器,因此也可以視作單獨的Web服務(wù)器。

          但是,Tomcat和ApacheHTTP服務(wù)器不是一個東西,ApacheHTTP服務(wù)器是用C語言實現(xiàn)的HTTP Web服務(wù)器。Tomcat是完全免費的,深受開發(fā)者的喜愛。

          Undertow是Red Hat公司的開源產(chǎn)品, 它完全采用Java語言開發(fā),是一款靈活的高性能Web服務(wù)器,支持阻塞IO和非阻塞IO。由于Undertow采用Java語言開發(fā),可以直接嵌入到Java項目中使用。同時, Undertow完全支持Servlet和Web Socket,在高并發(fā)情況下表現(xiàn)非常出色。

          我們在相同機器配置下壓測Tomcat和Undertow,得到的測試結(jié)果如下所示:

          QPS測試結(jié)果對比:

          Tomcat

          Undertow

          內(nèi)存使用對比:

          Tomcat

          Undertow

          通過測試發(fā)現(xiàn),在高并發(fā)系統(tǒng)中,Tomcat相對來說比較弱。在相同的機器配置下,模擬相等的請求數(shù),Undertow在性能和內(nèi)存使用方面都是最優(yōu)的。并且Undertow新版本默認(rèn)使用持久連接,這將會進一步提高它的并發(fā)吞吐能力。所以,如果是高并發(fā)的業(yè)務(wù)系統(tǒng),Undertow是最佳選擇。

          最后

          SpingBoot中我們既可以使用Tomcat作為Http服務(wù),也可以用Undertow來代替。Undertow在高并發(fā)業(yè)務(wù)場景中,性能優(yōu)于Tomcat。所以,如果我們的系統(tǒng)是高并發(fā)請求,不妨使用一下Undertow,你會發(fā)現(xiàn)你的系統(tǒng)性能會得到很大的提升。



          我的新書《深入理解Java核心技術(shù)》已經(jīng)上市了,上市后一直蟬聯(lián)京東暢銷榜中,目前正在6折優(yōu)惠中,想要入手的朋友千萬不要錯過哦~長按二維碼即可購買~


          長按掃碼享受6折優(yōu)惠


          往期推薦

          SpringBoot 實現(xiàn)人臉識別功能 !so easy


          “因一條 Linux sudo 命令,我的 Twitter 賬號被封了!”


          別再亂用了,這才是 @Validated 和 @Valid 的真正區(qū)別!!!




          有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)

          歡迎大家關(guān)注Java之道公眾號


          好文章,我在看??

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  鸡巴操逼视频 | 波多野结衣一区不卡 | 久久久久国产精品夜夜夜夜夜 | 中国婬乱a1级毛片多女 | 一本色道久久综合亚洲精品苍井空 |