• Java基础之《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文件配置

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-webartifactId>
    4. <exclusions>
    5. <exclusion>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-tomcatartifactId>
    8. exclusion>
    9. exclusions>
    10. dependency>
    11. <dependency>
    12. <groupId>org.springframework.bootgroupId>
    13. <artifactId>spring-boot-starter-undertowartifactId>
    14. dependency>

    2、application.yml文件配置

    1. server:
    2. port: 8442
    3. undertow:
    4. #HTTP POST请求最大的大小(0不限制)
    5. max-http-post-size: 0
    6. #设置IO线程数,它主要执行非阻塞的任务,它们会负责多个连接,默认设置每个CPU核心一个线程
    7. #不设置会自动调整
    8. io-threads: 4
    9. #阻塞任务线程池,当执行类似servlet请求阻塞操作,undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
    10. #不设置会自动调整
    11. worker-threads: 20
    12. ##以下配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
    13. #每块buffer的空间大小,越小的空间被利用越充分
    14. buffer-size: 1024
    15. #是否分配的直接内存
    16. direct-buffers: true
    17. #undertow容器日志
    18. accesslog:
    19. #日志存放路径
    20. dir: D://
    21. #是否启动日志
    22. enabled: true
    23. #日志格式
    24. pattern: common
    25. #日志文件名前缀
    26. prefix: access_log
    27. #日志文件名后缀
    28. suffix: log

    三、undertow有什么优势

    1、undertow平均响应时间比tomcat更快

    2、undertow可以分组件按需引入

    四、springboot2里的不同

    io-threads和worker-threads配置已经过时了,更换成最新的写法

    1. server:
    2. port: 8002
    3. undertow:
    4. buffer-size: 1024
    5. direct-buffers: true
    6. threads:
    7. io: 8
    8. worker: 256

  • 相关阅读:
    HUAWEI华为MateBook X Pro 2021款 i7 集显(MACHD-WFE9Q)原装出厂Win10系统20H2
    d结构用要求
    T、Class<T>以及Class<?>的理解
    [附源码]计算机毕业设计springboo酒店客房管理系统
    645仪表以JSON格式上发方法
    智能合约安全新范式,超越 `require`和`assert`
    NLP工具集:【doccano】——标注平台doccano使用手册
    改革后IB数学该如何选?
    开源浪潮下的共创与挑战:开发者视角的深度剖析
    利用大模型反馈故障的解决方案
  • 原文地址:https://blog.csdn.net/csj50/article/details/127881292