2014-03-25 98 views
-1

我使用spring rest web服務。它工作正常。但它每天的第一次請求都很慢。之後,所有的調用都工作得很好。問題只有當天的第一個電話。請幫助。提前感謝。Spring REST web服務在每天的第一個請求上很慢

+2

你沒有給出任何背景,爲什麼會有這麼多可能的原因。你還嘗試過什麼?你有沒有做過一些分析?你知道如何/何時建立潛在的緩存嗎? – reto

+2

如果通過「第一次呼叫」您的意思是「第一次調用容器」,那麼可能是因爲堆棧中的很多事物是「懶惰實例化」的,通常這是您想要的。如果這不是你想要的,你可以在你的ContextListener中實例化它們。如果您的字面意思是一天中的第一個電話,那麼我懷疑原因是與基礎設施有關。 –

+1

@MikkelLøkke:Thanks.I是指firt調用container.how以避免延遲實例化? – Salman

回答

2

根據您的架構和部署,約一百萬的東西可能有助於這個:-) 我將承擔Web應用程序是不是一夜之間關閉,因爲那將是太明顯了:-)

儘管如此,由於不活動,各種池(線程池,數據庫連接池等)可能已經轉爲近空。操作系統可能已經換出了JVM的頁面。 DNS緩存必須已過期,因此需要在系統中的每個組件之間再次使用實際DNS查找,而不是使用硬編碼IP來標識域名。端點和臨時L2交換機上的ARP緩存也相同。

所以你可以做的最簡單的事情是「保持引擎運行」,從cron或石英發出一個週期性的GET請求。或者在工作日開始前每天早上只進行一次「熱身」。

+0

謝謝Szocske :-) – Salman