SpringBoot优化内嵌的Tomcat
SpringBoot测试版本
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.3.3.RELEASE</version>
- </parent>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- </dependencies>
SpringBoot默认使用的是Tomcat作为web server
springboot中默认可以通过配置如下参数设置内嵌容器Tomcat的端口,最大线程数等等
server.port=8081
server.tomcat.max-threads=1000
但是,无法设置最大连接数,而最大连接数直接影响到Tomcat的性能,如何调整这个最大连接数呢?
以下有三种方法
一:
- package com.web.server;
- 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.ServletContextInitializer;
- import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
- import org.springframework.stereotype.Component;
- @Component()
- public class MyEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory
- {
- public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers)
- {
- //设置端口
- this.setPort(8081);
- return super.getEmbeddedServletContainer(initializers);
- }
- protected void customizeConnector(Connector connector)
- {
- super.customizeConnector(connector);
- Http11NioProtocol protocol = (Http11NioProtocol)connector.getProtocolHandler();
- //设置最大连接数
- protocol.setMaxConnections(2000);
- //设置最大线程数
- protocol.setMaxThreads(2000);
- protocol.setConnectionTimeout(30000);
- }
- }
二:
- package com.web.server;
- import org.apache.catalina.connector.Connector;
- import org.apache.coyote.http11.Http11NioProtocol;
- import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
- import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;
- import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- @Configuration
- public class WebServerConfiguration
- {
- @Bean
- public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory()
- {
- TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
- tomcatFactory.setPort(8081);
- tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
- return tomcatFactory;
- }
- }
- class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer
- {
- public void customize(Connector connector)
- {
- Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
- //设置最大连接数
- protocol.setMaxConnections(2000);
- //设置最大线程数
- protocol.setMaxThreads(2000);
- protocol.setConnectionTimeout(30000);
- }
- }
三:
- package com.web.server;
- import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
- import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
- import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- @Configuration
- public class WebServerConfiguration
- {
- @Bean
- public EmbeddedServletContainerCustomizer createEmbeddedServletContainerCustomizer()
- {
- return new MyEmbeddedServletContainerCustomizer();
- }
- }
- class MyEmbeddedServletContainerCustomizer implements EmbeddedServletContainerCustomizer
- {
- public void customize(ConfigurableEmbeddedServletContainer container)
- {
- TomcatEmbeddedServletContainerFactory tomcatFactory = (TomcatEmbeddedServletContainerFactory)container;
- tomcatFactory.setPort(8081);
- //下面的操作可以参照上面的方法
- }
- }
最后,如果发现没有生效,就把application.properties配置里面关于Tomcat的一些配置(server.*)全部删掉,就OK了。
http://blog.csdn.net/mn960mn/article/details/51306140
SpringBoot优化内嵌的Tomcat的更多相关文章
- SpringBoot 优化内嵌的Tomcat
在通过SpringBoot调用其它服务时,报错 org.springframework.web.client.ResourceAccessException: I/O error on POST re ...
- SpringBoot优化内嵌的Tomcat ---设置MaxConnections
使用kill -9杀掉springboot应用后,立马java -jar重启,会报错,需要等待一段时间才能启动成功,报错的原因是:/tmp/tomcat-docbase.474979491043437 ...
- 015-Spring Boot 定制和优化内嵌的Tomcat
一.内嵌web容器 参看http://www.cnblogs.com/bjlhx/p/8372584.html 查看源码可知提供以下三种: 二.定制优化tomcat 2.1.配置文件配置 通过appl ...
- springBoot定制内嵌的Tomcat
此篇仅介绍配置方式,详细配置内容百度查阅 工程结构: 可以通过配置的方式设置参数,如下 application.properties #配置tomcat端口 # server.port= 8888 # ...
- Spring Boot 内嵌容器 Tomcat / Undertow / Jetty 优雅停机实现
Spring Boot 内嵌容器 Tomcat / Undertow / Jetty 优雅停机实现 Anoyi 精讲JAVA 精讲JAVA 微信号 toooooooozi 功能介绍 讲解java深层次 ...
- springboot去除内嵌tomcat和打包在tomcat中运行需要做的步骤
去除内嵌tomcat和添加jsp依赖 去除内嵌tomcat 在springboot启动依赖中去除内嵌tomcat <dependency> <groupId>org.sprin ...
- SpringBoot Boot内嵌Tomcat
Spring Boot: SpringBoot-start-web 里面依赖的环境中 如果是外部的Tomcat 容器,可以通过修改config进行配置 内嵌的呢? 如何定制和修改Servlet容器的相 ...
- Spring Boot 定制与优化内置的Tomcat容器
1.Spring Boot定制与优化内置Tomcat容器. > 内置的容器有三个分别是Undertow.Jetty.Tomcat,Spring Boot 对这三个容器分别进行了实现,它们上层接口 ...
- springboot~mongo内嵌集合的操作
对于mongodb的内嵌对象的各种操作大叔在.net平台时已经说过,同时大叔也自己封装过mongo的仓储,使用也都很方便,而在java springboot框架里当然也有对应的方法,下面主要说一下,希 ...
随机推荐
- 七、适配器(Adapter)模式--结构模式(Structural Pattern)
适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作. 类的 Adapter模式的结构: 类适配器类图: 由图中可以看出,Adaptee ...
- SmartBusinessDevFramework架构设计-3:考虑开源?
掖着藏着,终归不是好的办法.说的跟花一样,究竟里子是什么东西.一个好的被子,里料是羽绒还是棉花还是丝绵还是黑心棉?有时候,真的是看过之后,才能体验其中的奥秘. 这个架构的设计初衷,总体是为了方便.ne ...
- SQL学习笔记——SQL初入门,Ubuntu下MySQL的安装
刚开始接触sql,于是准备在Ubuntu下学习sql,就跟着itercast的sql教程开始入门了. 下面只是我个人的记录,高手请绕道: 一. 在安装之前,我们可以用下面这个命令通过开放端 ...
- MonoDevelop with Visual Studio to Linux and Mac OSX maintaining a single code base for all platforms.
Home | Screenshots | Download | Contact | FAQ | Documentation | Development | Search MonoDevelop i ...
- [Python笔记][第一章Python基础]
2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...
- 【欧拉函数】【HDU1286】 找新朋友
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- js 写日期
<SCRIPT language="JavaScript" type="text/JavaScript"> today = new Date() ...
- XML.ObjTree -- XML source code from/to JavaScript object like E4X
转载于:http://www.kawa.net/works/js/xml/objtree-try-e.html // ========================================= ...
- localStorage和sessionStorage火狐浏览器和其他高级浏览器的区别
例子: <script>window.onload=function(){ var oSetData = document.getElementById('setData'); var o ...
- linux重要的标准目录和文件
linux重要的标准目录和文件 / 根目录,所有其他文件在根文件系统的子目录下 /bin 基本命令的二进制文件,存放linux下常用的命令和工具 /boot 引导加载器的固有文件,linux就是从这里 ...