- keepAliveTimeOut:多少毫秒后不响应的断开keepalive
- maxKeepAliveRequests:多少次请求后keepalive断开失效
使用WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>定制化内嵌tomcat配置
//当Spring容器内没有TomcatEmbeddedServletContainerFactory这个bean时,会把此bean加载进来
@Component
public class WebServerConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
@Override
public void customize(ConfigurableWebServerFactory configurableWebServerFactory) {
//使用对应工厂类提供的接口定制化tomcat connector
((TomcatServletWebServerFactory) configurableWebServerFactory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol= (Http11NioProtocol) connector.getProtocolHandler();
//定制化keepalivetimeout,设置30秒内没有请求则服务器自动断开keepalive连接
protocol.setKeepAliveTimeout(30000);
//当客户端发送超过10000个请求则自动断开keepalive连接
protocol.setMaxKeepAliveRequests(10000);
}
});
}
}
springboot提供给我们的定制化内嵌tomcat的一个开发,可以允许我们修改除了application.properties当中暴露出来的server.tomcat配置之外的其他的配置
设置这两个参数是为了保护我们的系统不受对应的客户端连接的拖累(连接、断开需要消耗资源,故希望一个连接能发送多次请求),在满足业务需求的情况下,又能适当地合理的运用资源