针对框架内嵌的Tomcat,实现自定义配置用法:

1. 可以通过application.yml文件实现

2. 可以通过代码,实现自定义配置

技术点

1. .yml文件格式用法:配置Tomcat参数,框架自动识别和加载

2. TomcatServletWebServerFactory对象:自定义实现Tomcat配置

功能技术点:

1. Tomcat容器配置用法,使用.yml文件方式

2. 设置tomcat的最大连接数和最大并发数

3. Springboot1和Springboot2版本之间的差异用法

代码演示

1. Tomcat容器配置用法,使用.yml文件方式

# tomcat
server:tomcat: # 最大线程数max-threads: 2# 最大连接数max-connections: 10# 监听端口port: 9090

2. Springboot2代码实现

package com.md.demo;import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 自定义实现Tomcat配置* */
@Configuration
public class MyTomcatCustomizer {@Beanpublic ConfigurableServletWebServerFactory configurableServletWebServerFactory() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();tomcat.addAdditionalTomcatConnectors(createConnector());return tomcat;}private Connector createConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();connector.setPort(8090);// 最大线程数protocol.setMaxThreads(2);// 最大连接数protocol.setMaxConnections(10);return connector;}
}

注:为了验证两者的差别,我故意把端口分别用了8090和9090端口

验证参数配置是否生效:我这里故意设置了maxThreads为2,可以调用接口,验证配置是否生效,如下图

3. Springboot代码实现

package com.yfax.webapi;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.context.embedded.EmbeddedServletContainer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.stereotype.Component;@Component
public class WebEmbedContainer extends TomcatEmbeddedServletContainerFactory {public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers) {return super.getEmbeddedServletContainer(initializers);}protected void customizeConnector(Connector connector) {super.customizeConnector(connector);Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();// 设置最大线程数protocol.setMaxThreads(350);// 设置最大连接数protocol.setMaxConnections(500);protocol.setAcceptorThreadCount(500);protocol.setMinSpareThreads(350);// 设置超时时间protocol.setConnectionTimeout(5000);protocol.setKeepAliveTimeout(5000);}
}

tomcat最大连接数_SpringBoot内嵌Tomcat自定义配置用法相关推荐

  1. windows查看tomcat连接数_Springboot内置Tomcat线程数优化

    # 等待队列长度,默认100.队列也做缓冲池用,但也不能无限长,不但消耗内存,而且出队入队也消耗CPU server.tomcat.accept-count=1000 # 最大工作线程数,默认200. ...

  2. 总结:SpringBoot内嵌Tomcat原理

    一.介绍 一般我们启动web服务都需要单独的去安装tomcat,而Springboot自身却直接整合了Tomcat,什么原理呢? 二.原理 SpringBoot应用只需要引入spring-boot-s ...

  3. 实现内嵌tomcat

    内嵌tomcat的实现: 首先根据外部tomcat的配置和启动过程我们可以得到以下条件: web.xml: 1.配置Servlet 2.配置请求拦截 3.配置请求转发 ... ... tomcat一些 ...

  4. spring boot内嵌tomcat优雅的开启apr模式

    文章目录 简介 Win下开启APR Linux下开启APR 把lib打进jar包 简介 环境: jdk8.spring boot 2.3.4.RELEASE.centOS7.3.win7 在sprin ...

  5. SpringBoot内嵌Tomcat原理

    1.SpringBoot对SpringMVC的支持 对于一个 SpringBoot web 工程来说,一个主要的依赖标志就是有 spring-boot-starter-web 这个 starter , ...

  6. springboot内嵌tomcat调优

    在springboot-configuration-metadata.json文件下面,有很多属于springboot得喷子hi属性,以下为tomcat的默认配置属性: server.tomcat.a ...

  7. springboot内嵌Tomcat启动失败

    问题描述 开发需求期间引入友军的二方包,导致服务启动失败,失败日志如下 java.lang.reflect.InvocationTargetExceptionat sun.reflect.Native ...

  8. 四、SpringBoot-设置内嵌Tomcat端口号及上下文根

    此处提供IDEA-SpringBoot-总目录链接,可查看整个项目过程其他步骤文章:点击此处跳转至总目录链接 此处提供IDEA-SpringBoot-总目录链接,可查看整个项目过程其他步骤文章:点击此 ...

  9. IDEA把Springboot打成可执行jar包,内嵌tomcat 这个可以用

    IDEA把Springboot打成可执行jar包,内嵌tomcat 2018年11月23日 18:36:30 ta山之石可以攻玉 阅读数 3061 版权声明:本文为博主原创文章,未经博主允许不得转载. ...

最新文章

  1. java 编码过滤器_Java编码过滤器
  2. Linux内核目录结构(2.6版本以上的kernel)
  3. 计算机体系结构--第一章1----体系结构的分类
  4. c/c++里面的变长参数的实现
  5. Leetcode--19. 删除链表的倒数第N个节点
  6. Android Studio 使用教程(2)----新建工程
  7. jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验
  8. 2016021902 - linux解压缩命令
  9. 《高质量程序设计指南--C/C++语言》学习笔记
  10. 动态规划算法(DP) JAVA 菜鸟理解
  11. logistic回归分析优点_SPSS教程|二分类logistic回归及SPSS操作
  12. Unity 数据统计SDK TalkingData
  13. 排序算法lowb三人组-冒泡排序
  14. 适当的发泄 有助于自我调整
  15. python语言应用 智慧树满分章节测试答案_Python语言应用完整智慧树网课章节测试答案...
  16. PDFBox实现图片转PDF --JAVA
  17. 双绞线与PCB差分信号布线
  18. :aria-checked_动手使用ARIA:首页元素和标准导航
  19. cpu利用率(cpu利用率突然100)
  20. 根据不同的厂商,分析师和IT用户对云计算的理解,我们将云计算细分以下几类?

热门文章

  1. C#算法设计之知识储备
  2. javascript 应用_如何利用JavaScript的功能使您的应用脱机工作
  3. Spring DI注入规则
  4. php查找存储引擎,php-如何找到MySQL临时表存储引擎
  5. matlab的m函数入门1
  6. Python库大全,建议收藏留用!
  7. python爬京东(带GUI)
  8. 您能解决这3个(看似)简单的Python问题吗?
  9. 牛逼了,用Python攻破wifi密码
  10. Hadoop 系列之 1.0 和2.0 架构