首页 > 其他分享 >Springboot 自定义Web容器

Springboot 自定义Web容器

时间:2023-05-07 22:31:52浏览次数:34  
标签:Web protocol Springboot 自定义 boot org starter

Springboot 自定义Web容器

如果你的项目并发量比较高,想要修改最大线程数、最大连接数等配置信息,可以通过自定义Web容器的方式,代码如下所示。

@SpringBootApplication(proxyBeanMethods = false)
public class App implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
 public static void main(String[] args) {
  SpringApplication.run(PetClinicApplication.class, args);
 }
 @Override
 public void customize(ConfigurableServletWebServerFactory factory) {
  TomcatServletWebServerFactory f = (TomcatServletWebServerFactory) factory;
        f.setProtocol("org.apache.coyote.http11.Http11Nio2Protocol");

  f.addConnectorCustomizers(c -> {
   Http11NioProtocol protocol = (Http11NioProtocol) c.getProtocolHandler();
   protocol.setMaxConnections(200);
   protocol.setMaxThreads(200);
   protocol.setSelectorTimeout(3000);
   protocol.setSessionTimeout(3000);
   protocol.setConnectionTimeout(3000);
  });
 }
}

注意上面的代码,我们设置了它的协议为org.apache.coyote.http11.Http11Nio2Protocol,意思就是开启了Nio2。这个参数在Tomcat8.0之后才有,开启之后会增加一部分性能。对比如下:

默认。

甚至可以将tomcat替换成undertowundertow也是一个Web容器,更加轻量级一些,占用的内容更少,启动的守护进程也更少,更改方式如下:

<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>
    <dependency>
      <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

标签:Web,protocol,Springboot,自定义,boot,org,starter
From: https://blog.51cto.com/u_15485833/6252635

相关文章

  • NET 6中的自托管Web API
    原文:NET6中的自托管WebAPI-我爱学习网(5axxw.com)我需要向现有库中添加一个非常简单的WebAPI,以便Python可以与应用程序通信。简单的请求/JSON响应。这比最初想象的更具挑战性。我习惯了NodeJ,在那里像Express这样的库只需几行代码就可以做到这一点。显然,web服务器需要集......
  • Weblogic11g安装部署-winserver篇
    目录一、安装weblogic11g1.1找到下载好的weblogic11g1.2打开安装程序wls1033_oepe111150_win32.exe,并完成初始化如下图1.3点击下一步并选择安装路径,这里选择d:\bea11g1.4把“我希望通过MyOracleSupport接收安全更新”方框前的勾去掉,其他选择默认安装即可1.5直到出现如下界面,......
  • 黑马 2-javaweb 学习随记
    day08 1:启动tomcat失败121-Oct-202213:41:57.148严重[main]org.apache.catalina.util.LifecycleBase.handleSubClassException初始化组件[Connector[HTTP/1.1-8080]]失败。2org.apache.catalina.LifecycleException:协议处理程序初始化失败3......
  • 【web 开发基础】PHP 中数组的定义和使用
    前言在PHP中定义数组非常灵活。与其他许多编程语言中的数组不同,PHP不需要在创建数组时指定数组的大小和类型,甚至无需再使用数组前先行声明,也可以在同一个数组中存储任何类型的数据,PHP支持一维和多维数组,可以由用户创建,也可以由一些特定的数据库处理函数从数据库查询中生成数组,或者......
  • 在web中使用json json异常
    今天在web中使用Jacjson将后端对象转换为json类型传输,在pom中导入依赖,代码中也可以引用,启动tomcat后发现启动失败,报jackson的异常。以为是jacson和spring的版本冲突问题,换版本,也是不能启动。换了fastjson后在代码中导入包,发现不能正常弹出方法引用,突然发觉,可能是tomcat的lib目录没......
  • 使用IDEA2023创建springMVC项目,web项目
    1.使用idea2022创建web项目 2.新建模块 3.编写文件名,记住如果想单独一个项目,不想被包括在其他项目里面就取消位置后面的地址,它有可能是上一个项目的主文件 4.创建完主要项目以后要添加web模块,先选中需要添加web项目的模块,再店家上方+号,选择 web模块 3.修改部......
  • 使用 NutUI 搭建「自定义业务风格」的组件库 | 京东云技术团队
    本文介绍,如何使用NutUI组件库,搭建一套为专属业务风格的业务组件库。NutUI是一款京东风格的移动端组件库。NutUI目前支持Vue和React技术栈,支持Taro多端适配。当下的实现方式一般组件库,都会给用户提供修改主题的方式。比如在NutUI组件库中,给用户提供了两种方式:修改CSS变量,Nu......
  • springboot集成下,mybatis的mapper代理对象究竟是如何生成的
    springboot集成下,mybatis的mapper代理对象究竟是如何生成的 前情回顾Mybatis源码解析-mapper代理对象的生成,你有想过吗,我们讲到了mybatis操作数据库的流程:先创建SqlSessionFactory,然后创建SqlSession,然后再创建获取mapper代理对象,最后利用mapper代理对象完成数据库......
  • webpack的学习与使用(安装时以管理员身份运行)
    1、安装webpack2、测试是否安装成功3、写入相应代码之后,进行webpack打包自动新增一个文件夹:4、将bundle.js文件写入html页面打开浏览器查看结果:......
  • IDEA导入SpringMvc文件-Tomcat部署web的文件
                    ......