springboot项目首选应用容器undertow,核心参数配置如下
设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 设置每个CPU核心数
server.undertow.io-threads=8
阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载,配置io线程*8
server.undertow.worker-threads=64
以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
每块buffer的空间大小,越小的空间被利用越充分
server.undertow.buffer-size=1024
每个区分配的buffer数量 , 所以pool的大小是buffer-size * buffers-per-region
server.undertow.buffers-per-region=1024
是否分配的直接内存
server.undertow.direct-buffers=true
maven 依赖 排除tomcat
<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>