Apigee Spike逮捕率限制申请

时间:2014-04-24 11:32:19

标签: api backend apigee throttling

我是Apigee新手。

我正在努力了解斯派克逮捕政策。

我正在查看此文档:
http://apigee.com/docs/api-services/content/shield-apis-using-spikearrest
http://apigee.com/docs/api-services/content/policy-attachment-and-enforcement

我无法理解的一件事是,当Spike Arrest Policy应用于ApiProxy时,是否针对每个Key / Client Dev Application应用了速率限制,还是在所有Keys / Client Dev应用程序之间共享?

例如,如果我们有以下配置:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <SpikeArrest async="false" continueOnError="false" enabled="true" name="spikearrest-1">
  <DisplayName>SpikeArrest-1</DisplayName>
  <FaultRules/>
  <Properties/>
  <Identifier ref="request.header.some-header-name"/>
  <MessageWeight ref="request.header.weight"/>
  <Rate>50ps</Rate>
</SpikeArrest>

和客户端开发应用程序:
1. DevApp1
2. DevApp2

DevApp1DevApp2之间是否共享50ps的速率限制,或者DevApp1DevApp2每次获得50ps的速率限制?

谢谢,

2 个答案:

答案 0 :(得分:2)

您可以使用任何预定义变量: http://apigee.com/docs/api-services/api/variables-reference

可能是Spike Arrest最常用的变量是client.ip。 Edge将使请求消息的所有元素可用。如果您的客户端将request_id(又称API密钥)作为查询参数添加到请求中,例如api.call.com?client_id=u34r8ur,那么您可以将Spike Arrest Identifier中的变量设置为:

<Identifier ref="request.queryparam.client_id"/>

或者如果它在HTTP标头中:

<Identifier ref="request.header.client_id"/>

希望有所帮助!

答案 1 :(得分:0)

由您的标识符标识的per app