spring boot内嵌容器undertow参数设置

阅读数:628 评论数:0

跳转到新版页面

分类

python/Java

正文

在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。

  同时,SpringBoot也支持Undertow容器,Undertow 是基于java nio的web服务器,应用比较广泛,内置提供的PathResourceManager,可以用来直接访问文件系统;如果你有文件需要对外提供访问,除了ftp,nginx等,undertow 也是一个不错的选择,作为java开发,服务搭建非常简便。我们可以很方便的用Undertow替换Tomcat。

一、配置Undertow

1、移除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>

2、添加undertow依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

二、参数配置

server.undertow.io-threads 设置IO线程数,它主要执行非阻塞的任务,它们会负责多个连接,默认设置每个CPU核心一个线程。
server.undertow.worker-threads 阻塞任务线程池,当执行类似servlet请求阻塞IO操作,undertow会从这个线程池中取得线程,默认值 是IO线程数$\times$8。
server.undertow.buffer-size 这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理。每块buffer的空间大小,不要设置的太大,以免影响其它他应用,合适即可。
server.undertow.buffers-per-region 每个区分配的buffer数量,所以pool的大小是buffer-size$\times$buffers-per-region。
server.undertow.direct-buffers  是否分配直接内存(NIO直接分配的堆外内存)。

 




相关推荐

一、概述 springboot中有两种方式使用kafka时,直接使用kafka-client连接kafka服务;另一种是使用spring-kafka框架来连接kafka。 1、版本兼容 使用时要注意版

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

websocket协议基于tcp的网络协议,它实现浏览器与器全双工通信。 spring boot2 +websocket 1、添加依赖 <pre clas

背景: 之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。 为了想让一套代码即可

共同点 都是用来表示Spring某个类是否可以接收HTTP请求。 不同点 @Controller标识一个spring类是Spring MVC c

系统异常捕获 参见:spring boot 2 全局异常处理 @ControllerAdvice(annotations = {RestController.class}) public class

从SSH(Structs/Spring/Hibernate)到SSM(SpringMVC/Spring/MyBatis),到现在一个S(Spring)就够的年代,可见Spring越来越重要了。<

@ConditionalOnMissingBean只能在@Bean注解的方法上使用。 可以给该注解传入参数例如@ConditionOnMissingBean(name = "exa

2.4版本之前 在之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样: spring: profiles: "dev" name: dev.di

一、配置 <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</