Jeder Thread wurde fünfmal angefordert. Der Thread wurde innerhalb von 5 Sekunden erstellt Es trat eine Übergröße auf und die Fehlerquote erreichte 43 %. Diese gleichzeitige Kapazität ist für Server mit besseren Konfigurationen relativ schwach.
Die Konfiguration von Metadaten wird in der offiziellen SpringBoot-Dokumentation erwähnt
Sie können sehen, dass die Standardkonfiguration der Ports zu unseren am häufigsten verwendeten Einstellungselementen gehört ihnen.
1. server.tomcat.accept-count: Warteschlangenlänge Wenn die Anzahl der zuweisbaren Threads aufgebraucht ist, werden nachfolgende Anforderungen in die Warteschlange gestellt, um zu warten wird abgelehnt, Standard 100.
2. server.tomcat.max-connections: die maximale Anzahl von Verbindungen, der Standardwert ist 10000
3 server.tomcat.max-threads: die maximale Anzahl von Arbeitsthreads, der Standardwert ist 200,
4. server.tomcat.min- spare-threads: Die Mindestanzahl der Arbeitsthreads, die Anzahl der anfänglichen Zuordnungsthreads, der Standardwert ist 10
In der Standardkonfiguration wird die Verbindung abgelehnt, wenn die Anzahl der Verbindungen 10.000 überschreitet
Unter In der Standardkonfiguration werden die ausgelösten Anforderungen nach mehr als 200 + 100 (maximale Arbeitsanzahl der Threads + Warteschlangenlänge) abgelehnt.
Diese Metadaten-Spring bietet natürlich externe Konfigurationsfunktionen In den Standardeinstellungen beträgt die maximale Anzahl von Threads von Tomcat 200 und die maximale Anzahl von Verbindungen 10.000. Der Umfang der unterstützten Parallelität bezieht sich auf die Anzahl der Verbindungen. Wie können 200 Threads 10.000 Verbindungen verarbeiten?
Derzeit verfügt Tomcat über drei Modi zum Verarbeiten von Verbindungen. Einer ist BIO, bei dem ein Thread nur eine Verbindung verarbeitet, und der andere ist NIO, bei dem ein Thread mehrere Verbindungen verarbeitet. Da HTTP-Anfragen nicht allzu lange dauern und mehrere Verbindungen in der Regel nicht gleichzeitig Nachrichten empfangen, stellt die Verarbeitung mehrerer Verbindungen mit einem Thread kein großes Problem dar. Es gibt auch den Apr-Modus. Diese drei Tomcat-Modi werden später ausführlich vorgestellt und hier nicht näher erläutert. Wenn Tomcat startet, können Sie anhand des Protokolls sehen, welchen Betriebsmodus der Connector verwendet:#更改内嵌tomcat参数 server.port=8080 ## 等待队列长度,默认100。 server.tomcat.accept-count=1000 ## 最大工作线程数,默认200。(4核8g内存,线程数经验值800,操作系统做线程之间的切换调度是有系统开销的,所以不是越多越好。) server.tomcat.max-threads=800 ## 最小工作空闲线程数,默认10。(适当增大一些,以便应对突然增长的访问量) server.tomcat.min-spare-threads=100
Maßgeschneiderte eingebettete Tomcat-Entwicklung
Über KeepAlive
在SpringBoot官方文档中提到了对内嵌容器的配置
//当spring容器内没有TomcatEmbeddedServletContainerFactory这个bean时,会把bean加载进spring容器 @Configuration public class WebServerConfiguration implements WebServerFactoryCustomizer<configurablewebserverfactory> { @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,设置30秒内没有请求则服务器自动断开keepalive连接 protocol.setKeepAliveTimeout(30000); //当客户端发送超过10000个请求则自动断开keepalive连接 protocol.setMaxKeepAliveRequests(10000); } }); } }</configurablewebserverfactory>
Das obige ist der detaillierte Inhalt vonSo betten Sie die Tomcat-Parallelitätskapazität in SpringBoot ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!