一、什么是undertow
1、undertow是springboot默认支持的三种servlet容器之一。
tomcat、jetty、undertow
2、undertow怎么读
under-tow
3、undertow是RedHat(红帽公司)的开源产品,采用java开发,是一款灵活、高性能的web服务器,提供了基于NIO的阻塞/非阻塞式APIs,也是WildFly(原名JBoss AS - JBoss Application Server)的默认web容器。
4、官方网站
https://undertow.io/index.html
5、结构图
分为:core组件、servlet组件、websocket组件,底层使用了XNIO。
6、undertow目前有两个主要版本
2.1:当前支持servlet 4.0,JDK8+的稳定版本
1.4:当前支持servlet 3.1,JDK7的稳定版本
二、undertow引入
1、pom文件配置
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat
org.springframework.boot spring-boot-starter-undertow
2、application.yml文件配置
server:port: 8442undertow:#HTTP POST请求最大的大小(0不限制)max-http-post-size: 0#设置IO线程数,它主要执行非阻塞的任务,它们会负责多个连接,默认设置每个CPU核心一个线程#不设置会自动调整io-threads: 4#阻塞任务线程池,当执行类似servlet请求阻塞操作,undertow会从这个线程池中取得线程,它的值设置取决于系统的负载#不设置会自动调整worker-threads: 20##以下配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理#每块buffer的空间大小,越小的空间被利用越充分buffer-size: 1024#是否分配的直接内存direct-buffers: true#undertow容器日志accesslog:#日志存放路径dir: D://#是否启动日志enabled: true#日志格式pattern: common#日志文件名前缀prefix: access_log#日志文件名后缀suffix: log
三、undertow有什么优势
1、undertow平均响应时间比tomcat更快
2、undertow可以分组件按需引入