返回顶部
首页 > 资讯 > 后端开发 > Python >springboot切换使用undertow容器的方式
  • 897
分享到

springboot切换使用undertow容器的方式

2024-04-02 19:04:59 897人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录SpringBoot切换使用undertow容器Maven引入jarundertow的基本配置一个特别的报错警告验证成功 分享感觉springboot替换默认容器und

springboot切换使用undertow容器

maven引入jar

<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>

undertow的基本配置

#undertow容器配置开始
# 是否打开 undertow 日志,默认为 false
server.undertow.accesslog.enabled=false
# 设置访问日志所在目录
server.undertow.accesslog.dir=logs
# 指定工作者线程的 I/0 线程数,默认为 2 或者 CPU 的个数
server.undertow.threads.io=8
# 指定工作者线程个数,默认为 I/O 线程个数的 8 倍
server.undertow.threads.worker=256
# 设置 Http POST 内容的最大长度,默认不做限制
server.undertow.max-http-post-size=4MB
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似Netty的池化内存管理;
server.undertow.buffer-size=1024
# 是否分配的直接内存(NIO直接分配的堆外内存)
server.undertow.direct-buffers=true
#undertow容器配置结束

其他配置可以先看springboot的autoconfig配置类这块的配置:

org.springframework.boot.autoconfigure.web包下的ServerProperties、servlet、embedded的undertowxxx类

一个特别的报错警告

解决使用undertow容器报io.undertow.websockets.jsr -

UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used

处理:

新增一个component注解的类,具体如下:

@Component
public class UndertowPoolCustomizer implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
    @Override
    public void customize(UndertowServletWebServerFactory factory) {
        factory.aDDDeploymentInfoCustomizers(deploymentInfo -> {
            WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
            webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 1024));
            deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
        });
    }
}

验证成功 

看到Undertow started xxx就是使用undertow容器启动成功了。

分享感觉

网传undertow比tomcat、jetty都快省资源,还是费阻塞nio等等,实际上可能就没有什么感觉。

我其实用postman测试了以前的一些接口,感觉接口返回秒回,就是感觉快了。

后来运行2天(没有配置undertow,默认配置)有点小卡,然后,早上把配置改成上面的发布,再观察几天试试。

springboot替换默认容器

undertow简介

Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器

Undertow 被设计成为完全可嵌入式,所以也叫做可嵌入式容器,可以很好的嵌入在SpringBoot中

性能比对

使用jmeter进行压测比较

tomcat压测结果

将tomcat容器换成jetty容器进行测试

将jetty容器修改为undertow

从吞吐量看undertow要强于前两个

项目中使用undertow 1.引入依赖

在官网上可以看到undertow主要有两个版本

2.1

The current stable Servlet 4.0 branch, requires jdk8 or above

1.4

The current stable Servlet 3.1 branch, supports JDK7

可以根据自己的servlet和jdk版本进行选择,我们这里使用2.1版本

<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-core</artifactId>
    <version>2.1.0.Final</version>
</dependency>
<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-servlet</artifactId>
    <version>2.1.0.Final</version>
</dependency>
<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-websockets-jsr</artifactId>
    <version>2.1.0.Final</version>
</dependency>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: springboot切换使用undertow容器的方式

本文链接: https://lsjlt.com/news/153835.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • springboot切换使用undertow容器的方式
    目录springboot切换使用undertow容器maven引入jarundertow的基本配置一个特别的报错警告验证成功 分享感觉springboot替换默认容器und...
    99+
    2024-04-02
  • SpringBoot如何切换成其它的嵌入式Servlet容器(Jetty和Undertow)
    目录如何切换成其它的嵌入式Servlet容器(Jetty和Undertow)SpringBoot默认使用的内置Servlet容器是TomcatSpringBoot还支持Jetty和U...
    99+
    2024-04-02
  • SpringBoot 多Profile使用与切换方式
    Spring中Profile对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境。 文件名格式:application-{profile}.properties...
    99+
    2024-04-02
  • SpringBoot怎么切换成其它的嵌入式Servlet容器
    本篇内容介绍了“SpringBoot怎么切换成其它的嵌入式Servlet容器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如何切换成其它的嵌...
    99+
    2023-07-02
  • SpringBoot如何使用Undertow做服务器
    目录使用Undertow做服务器说明NIO(非阻塞式输入输出)快速开始undertow警告Buffer pool was not set on WebSocketDeployment...
    99+
    2024-04-02
  • springboot+dynamicDataSource动态添加切换数据源方式
    目录springboot dynamicDataSource动态添加切换数据源1.修改初始加载的数据源map2.此时一开始的时候就会加载数据库中的3.但是发现新增数据源或修改数据源时...
    99+
    2024-04-02
  • 如何使用Spring Boot内嵌容器Undertow创建服务器
    这篇文章给大家分享的是有关如何使用Spring Boot内嵌容器Undertow创建服务器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Undertow是一个Web服务器,那么它就需要具备的现代Web服务器的基本...
    99+
    2023-05-30
    springboot undertow
  • edge浏览器怎么切换兼容模式
    edge浏览器切换兼容模式的方法:1、使用F12开发者工具;2、使用地址栏命令;3、使用组策略。Edge浏览器是微软推出的一款现代化的Web浏览器,它拥有很多强大的功能和优化,为用户提供了更好的浏览体验。然而,有时候在访问一些旧的或不兼容的...
    99+
    2023-07-26
  • 如何使用jQuery切换样式
    小编给大家分享一下如何使用jQuery切换样式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用jQuery切换样式//Look for th...
    99+
    2023-06-27
  • 使用 PyQt6 切换字符格式
    问题内容 我正在编写一个自定义文字处理器作为一个业余爱好项目。我正在使用 python 和 pyqt6。 我写了以下内容。目的是,如果我选择一些文本并应用粗体格式(例如,通过点击“ct...
    99+
    2024-02-09
  • SpringBoot嵌入式Web容器如何使用
    这篇“SpringBoot嵌入式Web容器如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot嵌入式W...
    99+
    2023-07-04
  • jackson在springboot中的使用方式-自定义参数转换器
    目录springboot jackson使用-自定义参数转换器要实现的功能思路关键代码Jackson自定义转换器@JsonDeserialize注解源码以日期类型为例自定义转换方法s...
    99+
    2024-04-02
  • Springboot使用filter对response内容进行加密方式
    目录使用filter对response内容进行加密编写加密类(AES)编写Filter类写配置类Springboot数据加密传输创建加解密注解注解创建request解密类创建resp...
    99+
    2024-04-02
  • java线程切换的方式有哪些
    Java线程切换的方式有以下几种: 抢占式调度:操作系统根据线程的优先级和时间片来决定线程的执行顺序。当一个线程的时间片用完或者...
    99+
    2023-10-28
    java
  • linux命令切换目录的使用方法
    1.cd - 作用是快速切换到前一个目录,如下: amosli@amosli-pc:~$ cd learn/fd/amosli@amosli-pc:~/learn/fd$ cd -/home/amosli ...
    99+
    2022-06-04
    使用方法 命令 目录
  • linux用命令切换目录的使用方法
    本篇内容介绍了“linux用命令切换目录的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.cd - 作用是快速切换到前一个目录,如...
    99+
    2023-06-09
  • win10系统怎么切换平板模式?win10平板模式的使用方法
    window10作为最新的系统,新增功能可以切换为平板使用,非常方便用户,看看怎么开启平板模式吧。 1、打开桌面下方的”开始菜单“。 2、选择”settings&ld 3、点击进...
    99+
    2023-06-11
    win10平板系统 win10平板模式 平板 模式 win10 使用 方法
  • SpringBoot使用protobuf格式的接口方式
    SpringBoot使用protobuf格式的接口 建立SpringBoot项目,pom.xml内容如下: <?xml version="1.0" encoding...
    99+
    2024-04-02
  • SpringBoot JMX的基本使用方式
    目录SpringBoot JMX的基本使用1. 声明2. 基本demo3. 执行结果springboot自定义jmx对象什么情况我们需要使用JMX?那要怎么做呢?SpringBoot...
    99+
    2024-04-02
  • 使用maven方式创建springboot项目的方式
    目录壹、创建maven项目贰、整改为springboot项目叁、测试 创建测试类使用Spring Initializr创建spring boot项目,因为外网问题导致很难成功,所以只...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作