在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作為容器。如果使用其他版本或者其他容器,可能需要做相應的調整。