美文网首页J2EE学习--SpringBoot
springboot2.0 tomcat 优化

springboot2.0 tomcat 优化

作者: 晏雪峤_美杜莎 | 来源:发表于2018-12-18 00:28 被阅读102次

    import org.apache.catalina.LifecycleListener;

    import org.apache.catalina.connector.Connector;

    import org.apache.catalina.core.AprLifecycleListener;

    import org.apache.coyote.http11.Http11AprProtocol;

    import org.apache.coyote.http11.Http11NioProtocol;

    import org.springframework.beans.factory.annotation.Value;

    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;

    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;

    /**

    * @Auther: xxxx

    * @Date: 2018/8/23 11:28

    * @Description: tomcat 参数配置.

    */

    @Configuration

    public class TomcatConfig {

        @Value("${tomcat.apr:false}")

        private boolean enabled;

        @Bean

        public ConfigurableServletWebServerFactory webServerFactory()

        {

            TomcatServletWebServerFactory tomcatFactory = new TomcatServletWebServerFactory();

            tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());

            if (enabled) {

                LifecycleListener aprLifecycle = new AprLifecycleListener();

                tomcatFactory.setProtocol("org.apache.coyote.http11.Http11AprProtocol");

                tomcatFactory.addContextLifecycleListeners(aprLifecycle);

            }

            return tomcatFactory;

        }

        class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer

        {

            public void customize(Connector connector)

            {

                if(enabled) {

                    Http11AprProtocol protocol = (Http11AprProtocol) connector.getProtocolHandler();

                    //设置最大连接数

                    protocol.setMaxConnections(5000);

                    //设置最大线程数

                    protocol.setMaxThreads(2000);

                    protocol.setConnectionTimeout(30000);

                }else {

                    Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();

                    //设置最大连接数

                    protocol.setMaxConnections(5000);

                    //设置最大线程数

                    protocol.setMaxThreads(2000);

                    protocol.setConnectionTimeout(30000);

                }

            }

        }

    }

    相关文章

      网友评论

        本文标题:springboot2.0 tomcat 优化

        本文链接:https://www.haomeiwen.com/subject/zrnooftx.html