tomcate一直是java web親賴的servlet容器,但是近段時間才發現,undertow已經崛起,區別各位自行百度,這邊主要介紹一下替換tomcate的流程
1. yaml、properties配置
# undertow容器配置
server:
undertow:
accesslog:
enabled: false
dir: logs
io-threads: 4
worker-threads: 32
max-http-post-size: 0
# 設置IO線程數, 它主要執行非阻塞的任務,它們會負責多個連接, 默認設置每個CPU核心一個線程
# 不要設置過大,如果過大,啓動項目會報錯:打開文件數過多
#server.undertow.io-threads=32
# 阻塞任務線程池, 當執行類似servlet請求阻塞IO操作, undertow會從這個線程池中取得線程
# 它的值設置取決於系統線程執行任務的阻塞係數,默認值是IO線程數*8
#server.undertow.worker-threads=2000
# 以下的配置會影響buffer,這些buffer會用於服務器連接的IO操作,有點類似netty的池化內存管理
# 每塊buffer的空間大小,越小的空間被利用越充分,不要設置太大,以免影響其他應用,合適即可
server.undertow.buffer-size=1024
# 每個區分配的buffer數量 , 所以pool的大小是buffer-size * buffers-per-region
server.undertow.buffers-per-region=1024
# 是否分配的直接內存(NIO直接分配的堆外內存)
server.undertow.direct-buffers=true
2. pom配置
<!--Spring Cloud Web 及Undertow容器配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 移除掉默認支持的 Tomcat,配置undertow容器 -->
<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>