在Spring Boot中,可以通过配置文件或者编程方式设置Keep-Alive。
server.tomcat.keepAliveTimeout=60000
server.tomcat.maxKeepAliveRequests=100
server.tomcat.keepAliveTimeout
属性设置了Keep-Alive超时时间,单位为毫秒。上述示例中的超时时间为60秒。server.tomcat.maxKeepAliveRequests
属性设置了最大Keep-Alive请求数。上述示例中的最大请求数为100。import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.AbstractHttp11Protocol;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TomcatConfig {
@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory() {
return new TomcatServletWebServerFactory() {
@Override
protected void customizeConnector(Connector connector) {
super.customizeConnector(connector);
if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setKeepAliveTimeout(60000);
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxKeepAliveRequests(100);
}
}
};
}
}
上述示例中,通过自定义TomcatServletWebServerFactory类,重写customizeConnector方法来设置Keep-Alive超时时间和最大请求数。
需要注意的是,具体的配置方式可能会因为Spring Boot的版本和使用的容器而有所不同,以上示例适用于Spring Boot 2.x版本,并使用Tomcat作为容器。如果使用其他版本或者其他容器,可能需要做相应的调整。