Jakarta ee JAXRS/RestEasy限制请求速率

Jakarta ee JAXRS/RestEasy限制请求速率,jakarta-ee,jboss,resteasy,jboss6.x,Jakarta Ee,Jboss,Resteasy,Jboss6.x,我有一个Restful API,用于通过POST将一些文件从远程节点上传到服务器 如果我关闭服务器,上传将远程排队,这样当服务器重新联机时,可能会有大量请求进入,从而导致服务器关闭 该应用程序托管在一个JBoss服务器集群上,带有Apache前端 所以我的问题是:是否有任何内置/有效的解决方案来限制并发请求的数量?在Apache/JBoss/RestEasy应用程序级别 此时,调用的API必须返回200(成功),否则上载将保留在远程队列中,并将在固定时间段后重试 我正在考虑将当前请求数存储在数据

我有一个Restful API,用于通过POST将一些文件从远程节点上传到服务器

如果我关闭服务器,上传将远程排队,这样当服务器重新联机时,可能会有大量请求进入,从而导致服务器关闭

该应用程序托管在一个JBoss服务器集群上,带有Apache前端

所以我的问题是:是否有任何内置/有效的解决方案来限制并发请求的数量?在Apache/JBoss/RestEasy应用程序级别

此时,调用的API必须返回200(成功),否则上载将保留在远程队列中,并将在固定时间段后重试


我正在考虑将当前请求数存储在数据库中并设置阈值,如果超过阈值,则拒绝请求,以便远程节点在一段时间后再次尝试,但是我希望有一个更优雅的解决方案

如果您通过apache with mod_proxy访问REST应用程序,也许您可以尝试限制到后端的最大并发连接数,例如:

ProxyPass /application/rest http://localhost:8080/application/rest max=10
ProxyPass /application http://localhost:8080/application
这样,您应该将与/application/rest的连接限制为最多10个。取自ApacheDoc


请注意,只有当您的Apache已在MPM模式下编译时,这才有效。如果Apache编译为prefork模式,它会为每个请求生成一个新进程,“max”属性只影响每个进程,因此没有实际效果。

有趣的是……我正在使用mod_proxy,不知道这个选项,我会尝试并报告它