2014-02-07 46 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允许多少个请求。