社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
在springboot-configuration-metadata.json文件下面,有很多属于springboot得喷子hi属性,以下为tomcat的默认配置属性:
注意:
- 默认配置下,连接超过10000后出现拒绝连接情况
- 默认配置下,触发的请求超过200+100后拒绝处理
一条来自网上大佬的经验:4核8G内存单进程调度线程800-1000以上之后会花费巨大的时间在CPU调度上
上面这些配置需要结合服务器配置,包括业务需求合理进行一些配置,我直接再springboot中的yml文件中进行了如下配置:
package com.zbw.secondskill.config;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11AprProtocol;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
/**
* @ClassName WebServerConfiguration.java
* @Description //当容器内没有TomcatEmbeddedServletContainerFactory这个bean时,会把此bean加载进spring容器中
* @Author ZBW
* @Date 2020年03月04日 17:33
**/
@Component
public class WebServerConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
/**
* @Param [ConfigurableWebServerFactory factory]->可配置化工厂
* @Return void
* @Description 对tomcat进行定制化
* @Author zbw
* @Time 2020/3/4 17:37
*/
@Override
public void customize(ConfigurableWebServerFactory factory) {
//使用对应工厂类提供给我们的接口定制化我们的tomcat connector
((TomcatServletWebServerFactory)factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
//定制化keepalivetimeout,设置30s内没有请求则服务端自动断开keepalive连接
protocol.setKeepAliveTimeout(30000);
//当客户端发送超过10000个请求则自动断开keepalive链接
protocol.setMaxKeepAliveRequests(10000);
}
});
}
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!