Obserwuję problem w mikroserwisach: jeśli dany endpoint nie jest używany przez dłuższy czas ( np.15-30 min), jego pierwsze wywołanie po takiej przerwie jest znacznie wolniejsze (np. 2-5s vs 50-150ms).
Mikroserwisy napisane są w Kotlinie, a obrazy dockerowe bazują na OpenJDK 21. Korzystam ze Spring Boota 3.2 (WebFlux), a z bazą PostgreSQL łączę się za pomocą Spring R2DBC.
Podobny problem zauważam również w mikroserwisach, które nie korzystają z bazy danych, a jedynie łączą się z zewnętrznymi API. Podejrzewam, że zapytanie musi otworzyć nowe połączenie z bazą (connection pool z max-idle-time: 30m), ale i tak nie powinno to trwać aż tak długo.
Czy ktoś ma pomysł, jak rozwiązać ten problem lub chociaż zminimalizować trochę ten czas (inny niż regularne wywoływanie tego endpointu)?