我正在尝试启用API网关节流,但它并不像预期的那样工作。
我将默认方法节流速率设置为每秒1次请求,并将突发设置为1次请求。

然后,我在代码中创建了一个循环,向API端点同时发出10个请求。
for (let i=0; i<10; i++) {
axios.get(url);
}预期结果将是:
但实际结果恰恰相反:
我重复了这个过程,但同时提出了20个请求,结果是:
在这个API方法的CloudWatch日志上,我发现了不同的日志流,每个日志流只有几毫秒的差异。

如果我将速率设置为每秒0请求,并将请求突发到0请求,则节流工作,所有请求都将获得节流。但是,当我将利率设定为1时,它并不像预期的那样起作用。
为什么会发生这种事?我需要将我的API限制为每秒一个请求。
发布于 2020-07-29 14:50:41
看起来,对于速率/突发的小值,API网关节流并不是很精确。
我设想有多个API网关运行的“实例”,而速率和突发的值“最终是一致的”。
然而,我没有找到任何有关这方面的文件。
当我发出初始请求并等待500毫秒后再发出其他99次请求时,结果“不太精确”。
示例:
axios.get(url);
setTimeout(function(){
console.log("After 500 ms");
for (let i=0; i<99; i++) {
axios.get(url);
}
}, 500);结果:
然而,很难有一致的结果。
发布于 2020-07-28 20:19:36
https://stackoverflow.com/questions/63141984
复制相似问题