根据API代理中设置的配额,配额违规无效

时间:2014-06-11 14:34:04

标签: apigee

我创建了一个以下配额,每小时可以使用API​​ 6次。这是验证API密钥身份验证类型。

网址为http://damuorgn-test.apigee.net/weatherforecastforlongandlat?apikey=dJAXoH8y6GfVNJSjlDhpVIB4XCVyJZ1R

但是配额例外仅在第8次之后发生(实际上应该是第7次)。此外,当我尝试更改配额限制并重新部署API代理时,我仍然会在第一次看到配额异常。请告知。

我正在使用云计算的免费组织。

    配额1                    1     假     假     小时     2014-6-11 19:00:00               20         五     

1 个答案:

答案 0 :(得分:0)

好的两件事......

1)您的配额设置为< Distributed> false< / Distributed>。
默认情况下,您的Apigee实例在两个单独的消息处理器(执行繁重的服务器)上运行。这意味着每个MP都会计数,并且配额为6,您实际上有6 * 2个服务器= 12。

2)您的配额是分布式的,但在第二个示例中是异步的。 如果您未设置< Distributed>和<同步>如果错误,Apigee将通过检入中央数据服务器来共享配额计数。这将始终存在一些延迟,但您已将AsynchronousConfiguration设置为每隔20秒或每5条消息与中央服务器一起检入,因此您可以在使用其他服务器登记之前在每个MP处理器上计数最多5个。

请记住,在像Apigee这样的分布式处理模型中,您永远不会得到绝对精确的数字,因为即使将Distributed设置为true并将Asynchronous设置为false,服务器也会相互交谈时会出现一些延迟。

此外,您可能想要删除request.header.quota_count和其他request.header变量 - 如果我将数字(例如100000)作为标题传递

 quota_count: 100000

Apigee将使用100000而不是您的值1(它使用引用的变量并仅在引用为NULL时回滚到默认值)。

而且......你可能想要添加< Idnetifier ref =“client_ip”>或者其他方面,配额对所有用户都是全局的。有关每个流程中可用的变量,请参阅http://apigee.com/docs/api-services/api/variables-reference处的Apigee变量参考。