最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot如何使用Undertow代替Tomcat

 更新時間:2020年09月07日 09:54:34   作者:碼農(nóng)小胖哥  
這篇文章主要介紹了Spring Boot如何使用Undertow代替Tomcat,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

1. Undertow 簡介

Undertow 是一個采用 Java 開發(fā)的靈活的高性能 Web 服務(wù)器,提供包括阻塞和基于 NIO 的非堵塞機制。Undertow 是紅帽公司的開源產(chǎn)品,是 Wildfly 默認(rèn)的 Web 服務(wù)器。Undertow 提供一個基礎(chǔ)的架構(gòu)用來構(gòu)建 Web 服務(wù)器,這是一個完全為嵌入式設(shè)計的項目,提供易用的構(gòu)建器 API,完全向下兼容 Java EE Servlet 3.1 和低級非堵塞的處理器。

2. Undertow特點

  • 高性能 在多款同類產(chǎn)品的壓測中,在高并發(fā)情況下表現(xiàn)出色。
  • Servlet4.0 支持 它提供了對 Servlet4.0 的支持。
  • Web Socket 完全支持,包括JSR-356,用以滿足 Web 應(yīng)用巨大數(shù)量的客戶端。
  • 內(nèi)嵌式 它不需要容器,只需通過 API 即可快速搭建 Web 服務(wù)器。
  • 靈活性 交由鏈?zhǔn)紿andler配置和處理請求,可以最小化按需加載模塊,無須加載多余功能。
  • 輕量級 它是一個 內(nèi)嵌Web 服務(wù)器, 由兩個核心 Jar 包組成

3. 替換默認(rèn)的Tomcat

Spring boot 默認(rèn)使用 Tomcat 內(nèi)嵌容器 。依賴于 spring-boot-starter-web 。我們只需要排除 Tomcat 依賴。引用Undertow 就可以了,maven 配置如下:

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
      <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-undertow</artifactId>
  </dependency>

4. 自定義配置Undertow

其實到第三步已經(jīng)可以愉快地玩耍了。你可以立即在 https://felord.cn 找到更多教程來學(xué)習(xí)Spring Boot。當(dāng)然你也可以再折騰一番,通過在Spring Boot 配置文件application.yml中配置 ServerProperties 和ServerProperties.Undertow 的相關(guān)屬性。 總結(jié)了一下比較陌生的ServerProperties.Undertow 的屬性:

# 設(shè)置IO線程數(shù), 它主要執(zhí)行非阻塞的任務(wù),它們會負(fù)責(zé)多個連接, 默認(rèn)設(shè)置每個CPU核心一個線程
# 不要設(shè)置過大,如果過大,啟動項目會報錯:打開文件數(shù)過多
server:
 undertow:
   io-threads: 16
# 阻塞任務(wù)線程池, 當(dāng)執(zhí)行類似servlet請求阻塞IO操作, undertow會從這個線程池中取得線程
# 它的值設(shè)置取決于系統(tǒng)線程執(zhí)行任務(wù)的阻塞系數(shù),默認(rèn)值是IO線程數(shù)*8
   worker-threads: 256
# 以下的配置會影響buffer,這些buffer會用于服務(wù)器連接的IO操作,有點類似netty的池化內(nèi)存管理
# 每塊buffer的空間大小,越小的空間被利用越充分,不要設(shè)置太大,以免影響其他應(yīng)用,合適即可
   buffer-size: 1024
# 每個區(qū)分配的buffer數(shù)量 , 所以pool的大小是buffer-size * buffers-per-region
   buffers-per-region: 1024
# 是否分配的直接內(nèi)存(NIO直接分配的堆外內(nèi)存)
   direct-buffers: true

5. 總結(jié)

今天我們演示了如何用性能優(yōu)良的 Undertow 來作為Spring Boot 的 Servlet Web 容器。其實在并發(fā)量不大的情況下 Undertow、和其它兩款 Servlet Web 容器 Jetty 、Tomcat 的差距并不是很大。 Undertow 的優(yōu)勢是高并發(fā)下的吞吐量。你可以根據(jù)自己的實際需要來選擇。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中的xxxable和xxxator使用及說明

    java中的xxxable和xxxator使用及說明

    這篇文章主要介紹了java中的xxxable和xxxator使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • springboot項目中使用docker進(jìn)行遠(yuǎn)程部署的實現(xiàn)

    springboot項目中使用docker進(jìn)行遠(yuǎn)程部署的實現(xiàn)

    本文主要介紹了在Spring Boot項目中使用Docker進(jìn)行遠(yuǎn)程部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • @DynamicUpdate //自動更新updatetime的問題

    @DynamicUpdate //自動更新updatetime的問題

    這篇文章主要介紹了@DynamicUpdate //自動更新updatetime的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • idea配置連接數(shù)據(jù)庫的超詳細(xì)步驟

    idea配置連接數(shù)據(jù)庫的超詳細(xì)步驟

    這篇文章主要介紹了idea配置連接數(shù)據(jù)庫的超詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • SparkSQL中的JSON內(nèi)置函數(shù)全解析

    SparkSQL中的JSON內(nèi)置函數(shù)全解析

    你是否曾經(jīng)為處理JSON數(shù)據(jù)而頭疼?SparkSQL為我們提供了強大的內(nèi)置JSON函數(shù),讓JSON處理變得輕而易舉,本文將帶你深入了解這些函數(shù),感興趣的朋友一起看看吧
    2024-08-08
  • Java中一個for語句導(dǎo)致無窮大死循環(huán)的例子

    Java中一個for語句導(dǎo)致無窮大死循環(huán)的例子

    這篇文章主要介紹了Java中一個for語句導(dǎo)致無窮大死循環(huán)的例子,本文給出的是一個很特別的例子,這個例子會跟你所想的結(jié)果不一樣,需要的朋友可以參考下
    2015-06-06
  • 一篇文章告訴你如何在Java數(shù)組中插入一個字符

    一篇文章告訴你如何在Java數(shù)組中插入一個字符

    本篇文章主要介紹了Java數(shù)組中插入一個字符的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-10-10
  • Java中super和this關(guān)鍵字詳解

    Java中super和this關(guān)鍵字詳解

    這篇文章主要介紹了Java中super和this關(guān)鍵字詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Jmeter使用接口傳遞數(shù)據(jù)過程圖解

    Jmeter使用接口傳遞數(shù)據(jù)過程圖解

    這篇文章主要介紹了Jmeter使用接口傳遞數(shù)據(jù)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • JDBC三層架構(gòu)深入刨析

    JDBC三層架構(gòu)深入刨析

    三層架構(gòu)是一種軟件設(shè)計架構(gòu),是一種組織代碼的手段和方法,三層架構(gòu)的優(yōu)點是擴(kuò)展性好,復(fù)用性高;缺點是步驟多,比較繁瑣;代碼多,效率降低
    2022-12-12

最新評論

即墨市| 高州市| 瑞丽市| 潜山县| 克拉玛依市| 泌阳县| 镇江市| 平陆县| 育儿| 南通市| 玉田县| 资中县| 高州市| 本溪市| 腾冲县| 铜山县| 泰州市| 武隆县| 阿尔山市| 华坪县| 始兴县| 太原市| 阳信县| 葵青区| 德清县| 寿宁县| 东方市| 宁强县| 安徽省| 莲花县| 罗田县| 米林县| 澜沧| 济南市| 老河口市| 类乌齐县| 苏尼特右旗| 娄烦县| 门头沟区| 黎城县| 扎兰屯市|