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
原文:http://www.cnblogs.com/softidea/p/5751596.html