我的应用程序发出 Web 服务请求;提供者将处理请求的最大速率,因此我需要限制它们。
当应用程序在单个服务器上运行时,我曾经在应用程序级别执行此操作:一个跟踪到目前为止已发出多少请求的对象,并在当前请求使其超过最大允许负载时等待。
现在,我们正在从单个服务器迁移到集群,因此有两个应用程序副本正在运行。
- 我无法继续检查应用程序代码的最大负载,因为两个节点的组合可能超过允许的负载。
- 我不能简单地减少每台服务器的负载,因为如果另一个节点空闲,第一个节点可以发出更多请求。
这是一个 JavaEE 5 环境。限制应用程序发出的请求的最佳方法是什么?