SpringBoot如何优化内嵌的Tomcat⽰例详解
前⾔
本⽂主要给⼤家介绍了关于Spring Boot优化内嵌Tomcat的相关内容,分享出来供⼤家参考学习,下⾯话不多说了,来⼀看看详细的介绍吧。
Spring Boot测试版本
<parent>
<groupId>org.springframework.boot</groupId>
springboot和过滤器
<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
但是,⽆法设置最⼤连接数,⽽最⼤连接数直接影响到Tomcat的性能,如何调整这个最⼤连接数呢?
以下有三种⽅法
第⼀种:
package com.web.server;
import org.tor.Connector;
import http11.Http11NioProtocol;
import org.t.embedded.EmbeddedServletContainer;
import org.t.embedded.ServletContextInitializer;
import org.at.TomcatEmbeddedServletContainerFactory;
import org.springframework.stereotype.Component;
@Component()
public class MyEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory
{
public EmbeddedServletContainer initializers)
{
//设置端⼝
this.setPort(8081);
EmbeddedServletContainer(initializers);
}
protected void customizeConnector(Connector connector)
{
super.customizeConnector(connector);
Http11NioProtocol protocol = (ProtocolHandler();
//设置最⼤连接数
protocol.setMaxConnections(2000);
//设置最⼤线程数
protocol.setMaxThreads(2000);
protocol.setConnectionTimeout(30000);
}
}
第⼆种:
package com.web.server;
import org.tor.Connector;
import http11.Http11NioProtocol;
import org.t.embedded.EmbeddedServletContainerFactory;
import org.at.TomcatConnectorCustomizer;
import org.at.TomcatEmbeddedServletContainerFactory;
import t.annotation.Bean;
import t.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) ProtocolHandler();
//设置最⼤连接数
protocol.setMaxConnections(2000);
//设置最⼤线程数
protocol.setMaxThreads(2000);
protocol.setConnectionTimeout(30000);
}
}
第三种:
package com.web.server;
import org.t.embedded.ConfigurableEmbeddedServletContainer;
import org.t.embedded.EmbeddedServletContainerCustomizer;
import org.at.TomcatEmbeddedServletContainerFactory;
import t.annotation.Bean;
import t.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了。
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。