2016-08-17 16 views
7

Stworzyłem microservice za pomocą Spring Boot. Byłem wydajności testowania usługi przez stubbing wywołań backend. Gdy spojrzałem na liczbę wątków, widzę, że maksymalna liczba wątków utworzonych dla usługi wynosi 20 w dowolnym momencie, mimo że liczba wykonanych połączeń jest znacznie wyższa. Czy są jakieś ograniczenia dotyczące liczby połączeń, które można wykonać w mikroserwisie opracowanym przy użyciu Spring Boot. Czy możesz wskazać, jakie kroki muszę wykonać, aby rozwiązać problem/zwiększyć liczbę połączeń akceptowanych przez usługę?Spring Boot - Limit liczby utworzonych połączeń

+2

z którego kontenera korzystasz? Jetty, tomcat, nginx, undertow ...? – alexbt

Odpowiedz

11

To ustawienie pochodzi z osadzonego kontenera (tomcat, molo ...).

liczba Tomcat wątków

Możesz określić tę właściwość w swoim application.properties

server.tomcat.max-threads=400 

Mówisz liczone 20 wątków, jednak zgodnie z tym other stackoverflow question/answer, domyślną liczbę wątek powinien być 200 z tomcat, ponieważ domyślna wartość wątków server.tomcat.max wynosi 0. Zobacz tomcat's documentation:

Maksymalna liczba wątków przetwarzania żądań, które mają zostać utworzone przez to złącze, która określa maksymalną liczbę równoczesnych żądań, które można obsłużyć. Jeśli nie zostanie określony, ten atrybut zostanie ustawiony na 200. Jeśli executor jest powiązany z tym łącznikiem, ten atrybut jest ignorowany, ponieważ łącznik wykona zadania przy użyciu executora, a nie puli wątków wewnętrznych.

Również Nieruchomość:

  • cofająca: server.undertow.worker-threads

  • pomost: server.jetty.acceptors

Musisz znaleźć listę properti es w Spring's documentation

+0

Wielkie dzięki, Alex. Używam tomcat. Spróbuję zaktualizować –

+0

Witaj Alex, czy jest jakiś sposób wydrukowania wartości domyślnej w mojej aplikacji? –

+0

Nie to, co wiem. Domyślnie wartość domyślna wątków server.tomcat.max-thread wynosi 0, więc sprowadza się do wartości tomcat. Co bym zrobił Jeśli byłbym tobą, to spróbuj z naprawdę dużą wartością (server.tomcat.max-threads = 1000) i zobacz, czy to robi różnicę. – alexbt