`
zweichxu
  • 浏览: 135172 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring Boot 使用Undertow代替tomcat作为内嵌web容器

阅读更多

spring boot内嵌容器默认为tomcat,想要换成undertow,非常容易,只需修改spring-boot-starter-web依赖,移除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>

 然后,添加undertow依赖

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

 这样即可,使用默认参数启动undertow服务器。如果需要修改undertow参数,继续往下看。

 

 

undertow的参数设置:

server:
    port: 8084
    http2:
        enabled: true
    undertow:
        io-threads: 16
        worker-threads: 256
        buffer-size: 1024
        buffers-per-region: 1024
        direct-buffers: true

 

io-threadsIO线程数, 它主要执行非阻塞的任务,它们会负责多个连接,默认设置每个CPU核心一个线程,不可设置过大,否则启动项目会报错:打开文件数过多。

 

worker-threads:阻塞任务线程池,当执行类似servlet请求阻塞IO操作,undertow会从这个线程池中取得线程。它的值取决于系统线程执行任务的阻塞系数,默认值是 io-threads*8

 

以下配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理。

buffer-size:每块buffer的空间大小,越小的空间被利用越充分,不要设置太大,以免影响其他应用,合适即可

buffers-per-region:每个区分配的buffer数量,所以pool的大小是buffer-size * buffers-per-region

direct-buffers:是否分配的直接内存(NIO直接分配的堆外内存)

 

 

分享到:
评论

相关推荐

    Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动

    TomcatEmbeddedServletContainerFactory是Spring Boot中用于创建Tomcat内嵌容器的工厂类。在该类中,getEmbeddedServletContainer方法用于创建一个Tomcat实例,并将其作为内嵌容器返回。 四、getSelfInitializer...

    Spring Boot讲义.pdf

    - **整合SpringMVC**:使用`spring-boot-starter-web`作为起步依赖,自动配置了SpringMVC和嵌入式的Tomcat。 - **整合连接池**:通过添加如`HikariCP`的依赖,Spring Boot可以自动配置数据源和连接池。 - **整合...

    Spring-Boot-Reference-Guide, Spring Boot Reference Guide中文翻译 -《Spring Boot参考指南》.zip

    3. 内嵌式Servlet容器:Spring Boot支持内嵌Tomcat、Jetty或Undertow,无需额外部署WAR文件。 4. 健康检查:提供健康检查API,用于监控系统状态。 5. 配置文件:通过application.properties或application.yml进行...

    Spring Boot 使用总结(一) Spring Boot 起步

    Spring Boot 可以直接内嵌Tomcat、Jetty或Undertow等Servlet容器,无需额外部署到外部服务器。只需运行主类中的`main`方法,即可启动包含HTTP服务的应用。 ### 5. 配置文件 Spring Boot 支持`application....

    Spring Boot核心技术 - 笔记.rar

    Spring Boot支持多种内嵌Web服务器,如Tomcat、Jetty和Undertow。内嵌服务器使得应用可以直接运行为可执行的JAR或WAR,无需额外的部署步骤。使用`spring-boot-starter-web`起步依赖,Spring Boot会默认使用Tomcat...

    Spring Boot in Action 英文版

    Spring Boot还支持内嵌的Servlet容器,比如Tomcat、Jetty或Undertow,这意味着开发者可以不用部署到传统的WAR文件中,而是直接运行一个JAR文件,并且应用程序会启动内嵌的Servlet容器。这简化了部署过程,使得开发...

    Spring Boot 教程、技术栈示例代码,快速简单上手教程。

    - **内嵌服务器**:Spring Boot 支持内嵌 Tomcat、Jetty 或 Undertow 服务器,无需额外部署,简化了开发流程。 - **运行器**:提供了命令行接口(CLI),方便快速创建和运行 Spring 应用。 - **健康检查**:内置健康...

    spring-boot 所有jar包

    2. **内嵌Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,这意味着你可以无需额外配置即可直接运行你的应用。 3. **自动配置(Auto Configuration)**:Spring Boot会根据你的类路径中的类...

    spring boot api chm

    2. **内嵌式容器**:Spring Boot支持内嵌的Tomcat、Jetty或Undertow服务器,这样你无需单独打包或管理这些服务器,只需运行应用程序即可。 3. **自动配置(Auto Configuration)**:Spring Boot通过扫描类路径中的...

    spring boot 简单实现

    2. 内嵌式容器:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Servlet容器,使得应用可以无需打包成WAR文件,直接运行JAR文件。 3. Starter POMs:Spring Boot提供了很多Starter依赖,如web、data、security等,只...

    Spring Boot核心技术-笔记-pdf版.pdf

    Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,开发者无需单独打包部署,大大简化了应用的发布流程。 4. **Actuator(监控与健康检查)** Actuator提供了一系列的端点(endpoints)用于监控和管理应用...

    spring-boot-中文参考手册

    Spring Boot支持内嵌Tomcat、Jetty或Undertow web服务器,无需额外进行打包和部署,使得应用可以直接以jar形式运行。 ### 四、健康检查与Actuator Actuator是Spring Boot提供的一个模块,用于提供应用的健康检查、...

    Demo project for Spring Boot

    Spring Boot允许内嵌Tomcat、Jetty或Undertow等Web服务器,这使得我们无需额外部署WAR文件,可以直接运行JAR包作为应用服务器。 **3. 自动配置** Spring Boot的核心特性是自动配置。它会根据项目中的类路径和属性...

    spring-boot深入浅出

    2. **内嵌服务器(Embedded Servers)**:Spring Boot支持内嵌Tomcat、Jetty或Undertow服务器,这样可以直接运行打包后的jar文件,而无需额外部署到外部容器,大大提高了开发效率。 3. **自动配置(Auto ...

    Spring Boot应用开发框架 v2.6.14.zip

    2. **嵌入式Web服务器**:Spring Boot可以轻松地与内嵌的Tomcat、Jetty或Undertow等Web服务器一起使用,无需额外部署到外部服务器。 3. **自动配置**:Spring Boot会根据项目中引入的依赖自动配置相关的Bean。例如...

    Spring Boot 2.0深度实践之核心技术篇

    3. **内嵌Web服务器**:Spring Boot支持内嵌的Tomcat、Jetty或Undertow等Web服务器,允许开发者无需部署WAR文件,直接运行JAR文件启动服务。 4. **YAML/Properties配置**:Spring Boot支持YAML或Properties格式的...

    精通 Spring Boot 42 讲(有源码).rar

    2. 内嵌式容器:Spring Boot支持内嵌Tomcat、Jetty或Undertow服务器,允许开发者无需额外部署即可运行应用。 3. 健康检查:提供了健康检查接口,用于监控应用的运行状态,包括数据库连接、缓存等关键组件的健康状况...

    spring-boot 1.2.4.release

    2. **内嵌式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,这使得你可以直接运行一个jar文件启动应用,无需额外部署到外部服务器。 3. **起步依赖(Starter POMs)**:Spring Boot提供了多...

    spring Boot 2精髓带源码带书签目录高清版

    3. **内嵌Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,无需额外部署,大大简化了开发和测试流程。 4. **Actuator**:Spring Boot Actuator提供了丰富的监控和管理端点,可以查看应用的...

Global site tag (gtag.js) - Google Analytics