Spring Boot :Undertow

Undertow

  • Undertow 是紅帽公司開發(fā)的一款基于 NIO 的高性能 Web 嵌入式服務(wù)器
  • Untertow 的特點(diǎn):
    • 輕量級:它是一個(gè) Web 服務(wù)器鲤氢,但不像傳統(tǒng)的 Web 服務(wù)器有容器概念搀擂,它由兩個(gè)核心 Jar 包組成,加載一個(gè) Web 應(yīng)用可以小于 10MB 內(nèi)存
    • Servlet3.1 支持:它提供了對 Servlet3.1 的支持
    • WebSocket 支持:對 Web Socket 完全支持卷玉,用以滿足 Web 應(yīng)用巨大數(shù)量的客戶端
    • 嵌套性:它不需要容器哨颂,只需通過 API 即可快速搭建 Web 服務(wù)器
  • 默認(rèn)情況下 Spring Cloud 使用 Tomcat 作為內(nèi)嵌 Servlet 容器,可啟動(dòng)一個(gè) Tomcat 的 Spring Boot 程序與一個(gè) Undertow 的 Spring Boot 程序相种,通過 VisualVM 工具進(jìn)行比較威恼,可看到 Undertow 性能優(yōu)于 Tomcat

使用 Undertow

添加依賴

<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>

支持 HTTP2

// 在@Configuration的類中添加@bean
@Bean
UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory() {
    
    UndertowEmbeddedServletContainerFactory factory = new UndertowEmbeddedServletContainerFactory();
    
    // 這里也可以做其他配置
    factory.addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true));
    
    return factory;
}

配置 Undertow

# Undertow 日志存放目錄
server.undertow.accesslog.dir
# 是否啟動(dòng)日志
server.undertow.accesslog.enabled=false 
# 日志格式
server.undertow.accesslog.pattern=common
# 日志文件名前綴
server.undertow.accesslog.prefix=access_log
# 日志文件名后綴
server.undertow.accesslog.suffix=log
# HTTP POST請求最大的大小
server.undertow.max-http-post-size=0 
# 設(shè)置IO線程數(shù), 它主要執(zhí)行非阻塞的任務(wù),它們會(huì)負(fù)責(zé)多個(gè)連接, 默認(rèn)設(shè)置每個(gè)CPU核心一個(gè)線程
server.undertow.io-threads=4
# 阻塞任務(wù)線程池, 當(dāng)執(zhí)行類似servlet請求阻塞操作, undertow會(huì)從這個(gè)線程池中取得線程,它的值設(shè)置取決于系統(tǒng)的負(fù)載
server.undertow.worker-threads=20
# 以下的配置會(huì)影響buffer,這些buffer會(huì)用于服務(wù)器連接的IO操作,有點(diǎn)類似netty的池化內(nèi)存管理
# 每塊buffer的空間大小,越小的空間被利用越充分
server.undertow.buffer-size=1024
# 每個(gè)區(qū)分配的buffer數(shù)量 , 所以pool的大小是buffer-size * buffers-per-region
server.undertow.buffers-per-region=1024
# 是否分配的直接內(nèi)存
server.undertow.direct-buffers=true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市寝并,隨后出現(xiàn)的幾起案子箫措,更是在濱河造成了極大的恐慌,老刑警劉巖衬潦,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斤蔓,死亡現(xiàn)場離奇詭異,居然都是意外死亡镀岛,警方通過查閱死者的電腦和手機(jī)附迷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哎媚,“玉大人,你說我怎么就攤上這事喊儡〔τ耄” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵艾猜,是天一觀的道長买喧。 經(jīng)常有香客問我,道長匆赃,這世上最難降的妖魔是什么淤毛? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮算柳,結(jié)果婚禮上低淡,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好蔗蹋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布何荚。 她就那樣靜靜地躺著,像睡著了一般猪杭。 火紅的嫁衣襯著肌膚如雪餐塘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天皂吮,我揣著相機(jī)與錄音戒傻,去河邊找鬼。 笑死蜂筹,一個(gè)胖子當(dāng)著我的面吹牛需纳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狂票,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼候齿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闺属?” 一聲冷哼從身側(cè)響起慌盯,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掂器,沒想到半個(gè)月后亚皂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡国瓮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年灭必,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乃摹。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禁漓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出孵睬,到底是詐尸還是另有隱情播歼,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布掰读,位于F島的核電站秘狞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蹈集。R本人自食惡果不足惜烁试,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拢肆。 院中可真熱鬧减响,春花似錦靖诗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悼院,卻和暖如春伤为,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背据途。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工绞愚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颖医。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓位衩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熔萧。 傳聞我的和親對象是個(gè)殘疾皇子糖驴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,810評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)佛致,斷路器贮缕,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 本文翻譯自Spring Boot官方文檔的Getting Started部分,原文可點(diǎn)擊此處查看俺榆。 如果你剛開始學(xué)...
    黃煒杰閱讀 3,838評論 0 22
  • 摘要 看完本文你將掌握如下知識點(diǎn): 如何搭建一個(gè)SpringBoot項(xiàng)目 SpringBoot自動(dòng)配置原理 Spr...
    飄逸峰閱讀 7,142評論 1 41
  • 受難的豹子臥于山崗 受難的豹子在臨盆 受難的豹子懷揣一輪落日感昼,低低地喘息—— 受難的豹子啊,故鄉(xiāng)的豹子 受難就是慶...
    憂傷沒有傷口閱讀 218評論 0 3