<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 開(kāi)發(fā)者放棄了 Tomcat,選擇了 Undertow?

          共 1635字,需瀏覽 4分鐘

           ·

          2021-01-17 14:26


          來(lái)源:toutiao.com/a6775476659416990212

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

          前言

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

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

          SpringBoot中的Tomcat容器

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

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

          SpringBoot設(shè)置Undertow

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

          沒(méi)錯(cuò),就是題目中的Undertow容器技術(shù)。SrpingBoot已經(jīng)完全繼承了Undertow技術(shù),我們只需要引入U(xiǎn)ndertow的依賴(lài)即可,如下圖所示。

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

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

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

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

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

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

          我們?cè)谙嗤瑱C(jī)器配置下壓測(cè)Tomcat和Undertow,得到的測(cè)試結(jié)果如下所示:

          QPS測(cè)試結(jié)果對(duì)比:

          Tomcat

          Undertow

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

          Tomcat

          Undertow

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

          最后

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



          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  我要操在线视频 | 午夜福利在线视频 | 手机看片福利一区 | 色欲av伊人网在线 | 亚洲成人在线视频导航 |