2016-08-17 4 views
7

Ich habe einen Microservice mit Spring Boot entwickelt. Ich habe den Dienst getestet, indem ich die Back-End-Aufrufe stubben ließ. Als ich mir die Anzahl der Threads anschaute, sehe ich, dass die maximale Anzahl von Threads, die für den Dienst erstellt wurden, zu jedem Zeitpunkt 20 ist, obwohl die Anzahl der ausgeführten Anrufe viel höher ist. Gibt es Einschränkungen hinsichtlich der Anzahl von Anrufen, die an einen mit Spring Boot entwickelten Microservice getätigt werden können? Können Sie mir bitte erläutern, in welchen Schritten ich die Anzahl der vom Dienst akzeptierten Verbindungen beheben muss?Spring Boot - Begrenzung der Anzahl der erstellten Verbindungen

+2

welchen Container verwenden Sie? Jetty, Kater, Nginx, Sog ...? – alexbt

Antwort

11

Diese Einstellung ergibt sich aus dem eingebetteten Container (Tomcat, Jetty ...).

Tomcat Anzahl der Threads

Sie diese Eigenschaft in Ihrem application.properties angeben

server.tomcat.max-threads=400 

Sie sagen, Sie 20 Fäden gezählt, aber nach diesem other stackoverflow question/answer, sollte die Standardanzahl der Faden sei 200 mit Tomcat, da der Standardwert von server.tomcat.max-threads 0 ist. Siehe tomcat's documentation:

Die maximale Anzahl von Anforderungsverarbeitungsthreads, die von diesem Connector erstellt werden. Dadurch wird die maximale Anzahl gleichzeitiger Anfragen festgelegt, die verarbeitet werden können. Wenn dieses Attribut nicht angegeben ist, wird es auf 200 gesetzt. Wenn diesem Connector ein Executor zugeordnet ist, wird dieses Attribut ignoriert, da der Connector Tasks mit dem Executor und nicht mit einem internen Thread-Pool ausführt.

Auch die Eigenschaft für:

  • undertow: server.undertow.worker-threads

  • Anlegestelle: server.jetty.acceptors

Sie die Liste der properti finden es in Spring's documentation

+0

Vielen Dank, Alex. Ich benutze Kater. Ich werde versuchen und aktualisieren –

+0

Hallo Alex, gibt es eine Möglichkeit, den Standardwert in meiner App zu drucken? –

+0

Nicht, dass ich davon weiß. Ich meine, der Standardwert von server.tomcat.max-threads ist definitiv 0, also kommt es auf den Tomcat-Wert an. Was ich tun würde Wenn ich Sie wäre, versuchen Sie mit einem wirklich großen Wert (server.tomcat.max-threads = 1000) und sehen Sie, ob es einen Unterschied macht. – alexbt

Verwandte Themen