Java基础之《undertow容器》
3、undertow是RedHat(红帽公司)的开源产品,采用java开发,是一款灵活、高性能的web服务器,提供了基于NIO的阻塞/非阻塞式APIs,也是WildFly(原名JBoss AS - JBoss Application Server)的默认web容器。1、undertow是springboot默认支持的三种servlet容器之一。一、什么是undertow。2、undertow怎么读
一、什么是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文件配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除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>
2、application.yml文件配置
server:
port: 8442
undertow:
#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可以分组件按需引入
四、springboot2里的不同
io-threads和worker-threads配置已经过时了,更换成最新的写法
server:
port: 8002
undertow:
buffer-size: 1024
direct-buffers: true
threads:
io: 8
worker: 256
更多推荐
所有评论(0)