在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么建議你替換掉SpringBoot框架中的Tomcat?

Android編程精選 ? 來源:頭條號阿邁達聊技術 ? 2023-01-07 10:26 ? 次閱讀

前言

在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的依賴即可,如下圖所示。

03f77764-8dcf-11ed-bfe3-dac502259ad0.jpg

040a4ad8-8dcf-11ed-bfe3-dac502259ad0.jpg

配置好以后,我們啟動應用程序,發現容器已經替換為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,在高并發情況下表現非常出色。

0430d702-8dcf-11ed-bfe3-dac502259ad0.jpg

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

QPS測試結果對比:

044a8a62-8dcf-11ed-bfe3-dac502259ad0.jpg

Tomcat

0466d938-8dcf-11ed-bfe3-dac502259ad0.jpg

Undertow

內存使用對比:

0486010a-8dcf-11ed-bfe3-dac502259ad0.jpg

Tomcat

049bb720-8dcf-11ed-bfe3-dac502259ad0.jpg

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,今天給大家介紹一個號稱springboot的輕量替代框架-Solon,這個框架還是國人開發的,真是一個單挑spring的男人。 認識Solon Solon是一個參考了Spring
    的頭像 發表于 09-30 10:55 ?4518次閱讀
    <b class='flag-5'>springboot</b>的輕量替代<b class='flag-5'>框架</b>-Solon

    請問第二次走線時怎么把上一次的替換掉

    我想把第二次走線的時候把上一次的替換掉怎么設置
    發表于 04-24 07:35

    SpringBoot的Druid介紹

    SpringBootDruid數據源配置
    發表于 05-07 09:21

    基于spring boot的linux服務器部署方法

    最近一直在研究springboot服務器,之前受到springmvc等框架的困擾,思路不對,一直想把springboot打包成war包然后部署到tomcat容器下,今天突然想到既然
    發表于 07-22 06:51

    一文解析SpringBoot2整合SSM框架

    SpringBoot2整合SSM框架詳解
    發表于 06-09 16:43

    如何用__write函數替換掉原先的fputc函數呢

    如何用__write函數替換掉原先的fputc函數呢?
    發表于 12-01 06:55

    為什么要用STM32去替換掉Arduino呢

    為什么要用STM32去替換掉Arduino呢?STM32相比Arduino有哪些優勢呢?
    發表于 12-15 06:21

    SpringBoot應用啟動運行run方法

    什么時候創建嵌入式的Servlet容器工廠?什么時候獲取嵌入式的Servlet容器并啟動Tomcat;獲取嵌入式的Servlet容器工廠:1)、SpringBoot應用啟動運行run方法2
    發表于 12-20 06:16

    SpringBoot配置嵌入式Servlet

    注冊Filter注冊ListenerSpringBoot注冊DispatcherServlet切換嵌入式Servlet容器SpringBoot默認使用Tomcat作為嵌入式的Servlet容器定制和修改Servlet容器相關配置可以通過全局配置文件或者自己編寫WebSer
    發表于 12-20 06:19

    什么時候獲取嵌入式的Servlet容器并啟動Tomcat

    什么時候創建嵌入式的Servlet容器工廠?什么時候獲取嵌入式的Servlet容器并啟動Tomcat?獲取嵌入式的Servlet容器工廠:1)、SpringBoot應用啟動運行run方法;2)、執行
    發表于 12-20 06:11

    想把我自定義的內核文件替換掉開發板里的內核如何操作?

    按照文檔方式裁剪好了內核文件image,但是文檔的OTG方式是使用鏡像文件t507_linux_okt507_uart0.img如果我僅想把我自定義的內核文件替換掉開發板里的內核,怎么操作呢Linux 4.9.170
    發表于 12-31 07:00

    Springboot整合netty框架實現終端、通訊板子(單片機)TCP/UDP通信案例

    如何springboot和netty案例的源代碼一個springboot整合netty框架的開發小案例,實現服務端與單片機終端實時通信的通訊架構案例。物聯網通信給板子下發指令案例附帶源碼及整合流程步驟
    發表于 12-29 18:55 ?20次下載
    <b class='flag-5'>Springboot</b>整合netty<b class='flag-5'>框架</b>實現終端、通訊板子(單片機)TCP/UDP通信案例

    什么是 SpringBoot

    本文從為什么要有 `SpringBoot`,以及 `SpringBoot` 到底方便在哪里開始入手,逐步分析了 `SpringBoot` 自動裝配的原理,最后手寫了一個簡單的 `start` 組件,通過實戰來體會了 `
    的頭像 發表于 04-07 11:28 ?1675次閱讀
    什么是 <b class='flag-5'>SpringBoot</b>?

    SpringBoot 連接ElasticSearch的使用方式

    在上篇 ElasticSearch 文章,我們詳細的介紹了 ElasticSearch 的各種 api 使用。 實際的項目開發過程,我們通常基于某些主流框架平臺進行技術開發,比如
    的頭像 發表于 10-09 10:35 ?1720次閱讀

    微服務器架構幾種典型的基礎框架了解嗎?

    SpringCloud、Dubbo、Dropwizard、Akka等是常見微服務框架。SpringCloud基于SpringBoot,生態豐富;Dropwizard輕量且繼承SpringBoot優點
    的頭像 發表于 03-04 11:05 ?349次閱讀
    主站蜘蛛池模板: 丁香婷婷啪啪 | 午夜影院18 | 久久久精品波多野结衣 | 亚洲高清免费观看 | 97成人免费视频 | 色综合久久久久久久久五月 | 中文天堂最新版在线中文 | 国产主播在线看 | 又粗又大的机巴好爽欧美 | 午夜日| 夜色成人| 48pao强力打造免费基地 | 黄 色 成 年人在线 黄a大片 | 日韩欧美高清一区 | 18女人毛片水真多免费 | 国产精品午夜在线观看 | 欧美a色| 国产真实灌醉美女疯狂弄 | 天天干视频在线观看 | 亚洲一区二区视频在线观看 | 国产吧在线 | 色视频在线观看 | 四虎亚洲国产成人久久精品 | 久久精品人人做人人看 | 日本级毛片免费观看 | 成人区精品一区二区毛片不卡 | 欧美三级视频在线播放 | 欧美一卡二卡科技有限公司 | 久久99热精品免费观看k影院 | 色视频色露露永久免费观看 | 狠狠插天天干 | 亚洲码欧美码一区二区三区 | 速度与激情一 | japanese色系tube日本护士 | 国产成人精品三级在线 | 久操视频在线播放 | 97综合色| 一区二区三区四区在线 | 91大神在线精品视频一区 | 天天操天天玩 | 亚洲黄色小视频 |