2014-02-07 45 views
1

Ahoi,SpringBoot集成的tomcat:配置爲限制請求

我使用集成tomcat的spring引導構建了一個小RESTful Webservice。然後我嘗試測試它是多麼強大,我發現發送多個HTTP請求(使用apache基準測試)顯着增加了內存使用量,直到服務由於OutOfMemoryException而失敗 - 也似乎無法在合理的時間內恢復。

我無法找到如何例如配置集成的tomcat的任何文件通過IP限制請求數量(或者其他什麼意義?)。另外我不知道是否有任何已知的內存泄漏,因爲幾千個請求不應該真正帶來tomcat(我用-Xms512m -Xmx1024m運行.jar)

我感謝您的幫助!

+0

我上週剛剛做了類似的事情,我會說,你在你的代碼有內存泄漏...(因爲它是在我的測試罰款) – wrm

+0

其實我敢肯定沒有內存泄漏。當向進程提供更多內存時,它不會崩潰,並通過visualVM顯示內存使用情況,顯示它在散裝工作臺請求之後總是返回合理的基線。也許我的問題應該是:如何配置tomcat不要崩潰=( – Alex

+0

也許如果你可以分享一個簡單的項目,演示問題? –

回答

1

我不認爲Tomcat有這種內置的過濾器,但它應該是非常容易的添加自己的javax.servlet.Filter用於這一目的。 RateLimiter class from Guava是一個極好的資源,用於限制在某個時間窗口內允許每個IP允許多少個請求。