Kilka tysięcy żądań restowych restartuje mi serwis

0

Hej, mam mikroserwis, którym próbuję pobrać dane z zewnętrznego serwisu przy użyciu resta. Problem polega na tym, że tych żądań musi być kilkanaście tysięcy, a już po około 5 tysiącach mikroserwis się restartuje bez żadnych logów. Próbowałem użyć wielowątkowości oraz wysyłać żądania w mniejszych zbiorach, ale suma sumarum efekt jest taki sam. Po około 5 tysiącach żądań serwis sie restartuje. Do wykonywania żądań używam Springowego RestTemaplate. Byłbym wdzięczny za jakieś wskazówki.

PS: Uprzedzając pytania, ten zewnętrzny serwis, o dziwo, nie udostępnia możliwości pobrania danych batchowo:<

0

Co to znaczy restartuje się? Jak jest uruchamiany?

Może na poziomie systemu są jakieś ustawienia dla wykorzystania zasobów przez usługę i polityka typu: "Jak CPU na pozioimie 99% -> ubij".

0

Patrzyłeś na GCloga? Czy czasem GC nie zajechał ci aplikacji? Sprawdzałeś te dane? Albo heap dumpa.
Jakiś wyjątek musi polecieć, że się wywaliło, albo Om killer się włącza bo appka zjada cały ram itp. xmx jaki masz ustawiony? Ile razy gc się włącza ?

0

Nie używaj blokującego HTTP clienta - wątek per request w tym przypadku może Ci zjeść pamięć (1MB per thread stack).

1

Włącz sobie gc loga :

-XX:+PrintGCDetails -Xloggc:myapp-gc.log

puść ruch i po restarcie sprawdź wygenerowane logi na: gceasy.io.
Podeślij linka do wygenerowanego raportu

0

Pracujesz na linuxie?Te zapytania szybko się wykonują? Jeśli tak, to w tym wątku jest ciekawa odpowiedź czemu tak się może dziać.

https://stackoverflow.com/questions/31869193/using-spring-rest-template-either-creating-too-many-connections-or-slow/31892901

0 użytkowników online, w tym zalogowanych: 0, gości: 0