我有一个Restful API,用于通过POST将一些文件从远程节点上传到服务器
如果我关闭服务器,则上传会远程排队,这样当服务器重新联机时,可能会有大量请求进入,这会导致服务器停机
应用程序托管在具有Apache前端的JBoss服务器集群
中所以我的问题是:是否有任何内置/有效的解决方案来限制并发请求的数量?在Apache / JBoss / RestEasy - 应用程序级别
目前,被调用的API必须返回200(成功),否则上传将保留在远程队列中并在固定时间段后重试
我正在考虑将当前数量的请求存储在数据库中并设置阈值,如果超过了该值,则拒绝该请求,以便远程节点在一段时间后再次尝试,但我希望会有是一个更优雅的解决方案
答案 0 :(得分:0)
如果您通过带有mod_proxy的apache访问REST应用程序,也许您可以尝试限制到后端的最大并发连接数,例如:
ProxyPass /application/rest http://localhost:8080/application/rest max=10
ProxyPass /application http://localhost:8080/application
这样你应该将/ application / rest的连接限制为最大数量10.取自apache doc http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass
请注意,只有在使用MPM模式编译Apache时,此方法才有效。如果Apache编译为prefork模式,它会为每个请求生成一个新进程,“max”属性只影响每个进程,因此没有实际效果。