2011-03-03 53 views
0

我正在构建一个向SOAP API发出请求的Java应用程序。 API暴露的某些方法受到限制,这些方法具有不同的限制速率,范围从5 p/m到100 p/m。限制所有请求至5 p/m是不可接受的,因为某些方法(即具有较高节流限制的方法)必须更频繁地访问。Java - 限制SOAP API调用

如何在我的项目中实施节流控制,允许我为不同的方法指定不同的节流限制?

干杯,

皮特

+0

这是在一个单一的线程?或者它可以并行地向远程方法发出多个请求? – ThomasRS 2011-03-04 00:41:39

+0

这是一个单线程。 – Peter 2011-03-04 10:41:07

回答

0

皮特 -

几个问题:

  • 正在对每个用户的基础上完成的这个限制?
  • 您的API调用是否包含唯一标识调用者的方法?
  • 当超出限制时,您寻找什么行为?

一种通用的方法是跟踪用户,调用的方法和允许调用的速率,并返回一个布尔值,指示用户是否超出了限制。您希望此方法相当轻量,以便计算不会影响系统其余部分的性能,因为每个API调用都需要此检查。

+0

限制是在有限/无限制的基础上完成的,所有未支付帐户的限制方式都是相同的,所有付费帐户都有无限制访问权限。我正在寻找使应用程序暂停,直到它允许进行限制请求,如果它试图做出一个,但已经使用了它的时间。 – Peter 2011-03-03 22:14:54