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

springboot切換使用undertow容器的方式

 更新時(shí)間:2022年07月08日 08:37:01   作者:肥仔哥哥1930  
最近稍微有點(diǎn)空閑,回頭再來(lái)優(yōu)化下基礎(chǔ)框架,也是一種重新學(xué)習(xí)。今天主要寫寫跟大家分享下springboot使用undertow,廢話不多說(shuō)

springboot切換使用undertow容器

maven引入jar

<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-web</artifactId>
? ? <!-- 默認(rèn)是使用的tomcat -->
? ? <exclusions>
? ? ? ? <exclusion>
? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? <artifactId>spring-boot-starter-tomcat</artifactId>
? ? ? ? </exclusion>
? ? </exclusions>
</dependency>
<!-- undertow容器支持 -->
<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

undertow的基本配置

#undertow容器配置開(kāi)始
# 是否打開(kāi) undertow 日志,默認(rèn)為 false
server.undertow.accesslog.enabled=false
# 設(shè)置訪問(wèn)日志所在目錄
server.undertow.accesslog.dir=logs
# 指定工作者線程的 I/0 線程數(shù),默認(rèn)為 2 或者 CPU 的個(gè)數(shù)
server.undertow.threads.io=8
# 指定工作者線程個(gè)數(shù),默認(rèn)為 I/O 線程個(gè)數(shù)的 8 倍
server.undertow.threads.worker=256
# 設(shè)置 HTTP POST 內(nèi)容的最大長(zhǎng)度,默認(rèn)不做限制
server.undertow.max-http-post-size=4MB
# 以下的配置會(huì)影響buffer,這些buffer會(huì)用于服務(wù)器連接的IO操作,有點(diǎn)類似netty的池化內(nèi)存管理;
server.undertow.buffer-size=1024
# 是否分配的直接內(nèi)存(NIO直接分配的堆外內(nèi)存)
server.undertow.direct-buffers=true
#undertow容器配置結(jié)束

其他配置可以先看springboot的autoconfig配置類這塊的配置:

org.springframework.boot.autoconfigure.web包下的ServerProperties、servlet、embedded的undertowxxx類

一個(gè)特別的報(bào)錯(cuò)警告

解決使用undertow容器報(bào)io.undertow.websockets.jsr -

UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used

處理:

新增一個(gè)component注解的類,具體如下:

@Component
public class UndertowPoolCustomizer implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
? ? @Override
? ? public void customize(UndertowServletWebServerFactory factory) {
? ? ? ? factory.addDeploymentInfoCustomizers(deploymentInfo -> {
? ? ? ? ? ? WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
? ? ? ? ? ? webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 1024));
? ? ? ? ? ? deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
? ? ? ? });
? ? }
}

驗(yàn)證成功 

看到Undertow started xxx就是使用undertow容器啟動(dòng)成功了。

分享感覺(jué)

網(wǎng)傳undertow比tomcat、jetty都快省資源,還是費(fèi)阻塞nio等等,實(shí)際上可能就沒(méi)有什么感覺(jué)。

我其實(shí)用postman測(cè)試了以前的一些接口,感覺(jué)接口返回秒回,就是感覺(jué)快了。

后來(lái)運(yùn)行2天(沒(méi)有配置undertow,默認(rèn)配置)有點(diǎn)小卡,然后,早上把配置改成上面的發(fā)布,再觀察幾天試試。

springboot替換默認(rèn)容器

undertow簡(jiǎn)介

Undertow 是紅帽公司開(kāi)發(fā)的一款基于 NIO 的高性能 Web 嵌入式服務(wù)器

Undertow 被設(shè)計(jì)成為完全可嵌入式,所以也叫做可嵌入式容器,可以很好的嵌入在SpringBoot中

性能比對(duì)

使用jmeter進(jìn)行壓測(cè)比較

tomcat壓測(cè)結(jié)果

將tomcat容器換成jetty容器進(jìn)行測(cè)試

將jetty容器修改為undertow

從吞吐量看undertow要強(qiáng)于前兩個(gè)

項(xiàng)目中使用undertow 1.引入依賴

在官網(wǎng)上可以看到undertow主要有兩個(gè)版本

2.1

The current stable Servlet 4.0 branch, requires JDK8 or above

1.4

The current stable Servlet 3.1 branch, supports JDK7

可以根據(jù)自己的servlet和jdk版本進(jìn)行選擇,我們這里使用2.1版本

<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-core</artifactId>
    <version>2.1.0.Final</version>
</dependency>
<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-servlet</artifactId>
    <version>2.1.0.Final</version>
</dependency>
<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-websockets-jsr</artifactId>
    <version>2.1.0.Final</version>
</dependency>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Java詳解HashMap實(shí)現(xiàn)原理和源碼分析

    Java詳解HashMap實(shí)現(xiàn)原理和源碼分析

    這篇文章主要介紹了Java關(guān)于HashMap的實(shí)現(xiàn)原理并進(jìn)行源碼分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot接口防重復(fù)提交的三種解決方案

    SpringBoot接口防重復(fù)提交的三種解決方案

    在Web開(kāi)發(fā)中,防止用戶重復(fù)提交表單是一個(gè)常見(jiàn)的需求,用戶可能會(huì)因?yàn)榫W(wǎng)絡(luò)延遲、誤操作等原因多次點(diǎn)擊提交按鈕,導(dǎo)致后臺(tái)接收到多個(gè)相同的請(qǐng)求,本文將介紹幾種在Spring Boot中實(shí)現(xiàn)接口防重復(fù)提交的方法,需要的朋友可以參考下
    2024-11-11
  • Spring Cloud Feign接口返回流的實(shí)現(xiàn)

    Spring Cloud Feign接口返回流的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Cloud Feign接口返回流的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 必知必會(huì)的SpringBoot實(shí)現(xiàn)熱部署兩種方式

    必知必會(huì)的SpringBoot實(shí)現(xiàn)熱部署兩種方式

    這篇文章主要為大家介紹了必知必會(huì)的SpringBoot實(shí)現(xiàn)熱部署兩種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Java中的雙重檢查(Double-Check)詳解

    Java中的雙重檢查(Double-Check)詳解

    這篇文章主要為大家詳細(xì)介紹了Java中的雙重檢查(Double-Check),感興趣的小伙伴們可以參考一下
    2016-02-02
  • Lombok不生效,提示java:?找不到符號(hào)的解決方案

    Lombok不生效,提示java:?找不到符號(hào)的解決方案

    這篇文章主要介紹了Lombok不生效,提示java:?找不到符號(hào)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java在hashmap初始化時(shí)賦初值過(guò)程解析

    java在hashmap初始化時(shí)賦初值過(guò)程解析

    這篇文章主要介紹了java在hashmap初始化時(shí)賦初值過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn)

    SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn)

    本文主要介紹了SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java簡(jiǎn)單統(tǒng)計(jì)字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法

    Java簡(jiǎn)單統(tǒng)計(jì)字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法

    這篇文章主要介紹了Java簡(jiǎn)單統(tǒng)計(jì)字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法,涉及java針對(duì)字符串的遍歷、編碼轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Java切面(Aspect)的多種實(shí)現(xiàn)方式

    Java切面(Aspect)的多種實(shí)現(xiàn)方式

    這篇文章主要給大家介紹了關(guān)于Java切面(Aspect)的多種實(shí)現(xiàn)方式,在Java開(kāi)發(fā)中切面(Aspect)是一種常用的編程方式,用于實(shí)現(xiàn)橫切關(guān)注點(diǎn)(cross-cutting concern),需要的朋友可以參考下
    2023-08-08

最新評(píng)論

高清| 玛曲县| 文登市| 永川市| 土默特右旗| 马龙县| 莒南县| 托克托县| 潮州市| 富民县| 公安县| 那坡县| 岑巩县| 平定县| 济南市| 若尔盖县| 长泰县| 无极县| 海城市| 安陆市| 承德县| 临夏县| 闸北区| 濮阳县| 海丰县| 名山县| 自治县| 太保市| 泾源县| 甘孜| 无极县| 德州市| 出国| 如东县| 依兰县| 汨罗市| 宝清县| 咸丰县| 嘉峪关市| 锡林浩特市| 高要市|