SpringBoot內置Tomcat參數調優

今天想設置Tomcat連接超時時間,發現配置文件選項裏沒有這個參數,決定自己寫一個,直接上代碼吧。Spring Boot版本2.0.5

package cn.ployer.watch.common.tomcat;

import java.nio.charset.Charset;

import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.SpringBootConfiguration;
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;

@SpringBootConfiguration
public class WebServerConfiguration {

    @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.setPort(11359);//端口號
        factory.setUriEncoding(Charset.forName("utf-8"));//編碼
        factory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
        return factory;
    }
    
    class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer {

        @Override
        public void customize(Connector connector) {
            // TODO Auto-generated method stub
            Http11NioProtocol handler = (Http11NioProtocol)connector.getProtocolHandler();
            
            handler.setAcceptCount(2000);//排隊數
                        
            handler.setMaxConnections(5000);//最大連接數
            
            handler.setMaxThreads(2000);//線程池的最大線程數
            
            handler.setMinSpareThreads(100);//最小線程數
                        
            handler.setConnectionTimeout(30000);//超時時間                    
        }
    }
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章