我有一个由 HttpRequest 触发的 Azure 函数应用。函数应用程序读取请求,将它的一个副本扔到存储表中以进行保管,并将另一个副本发送到队列以供系统的另一个元素进一步处理。我有一个运行 ApacheBench 测试的客户端,该测试报告每秒处理大约 148 个请求。这种处理速度不足以满足我们的预期负载。
我对函数式应用程序的理解是,它应该根据需要生成尽可能多的实例来处理发送给它的负载。但是这个函数应用程序的扩展速度可能不够快,因为它每秒只能处理 148 个请求。我需要它每秒处理至少 200 个请求。
不过,我不是 100% 确定问题出在我头上。在分析我的函数应用程序的性能时,我发现了很多 429 错误。我在网上发现的内容,特别是https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits表明这些错误可能是由于发送的请求过多一个IP。一天内的几次 ApacheBench 10K 和 20K 请求负载测试会导致 429 错误吗?
但是,如果不是这样,如果问题出在我的函数应用程序上,我如何才能强制我的函数应用程序更快地生成更多实例?我认为这是每秒获得更多吞吐量的方法。但我在使用功能应用程序方面仍然很陌生,所以如果有不同的方式,我非常欢迎您的意见。
也许公共预览版的高级应用服务计划可以处理更多的吞吐量?我已经考虑过切换到那个并运行一个快速测试,但不确定我是否能够切换回来?
也许 EventHub 是我需要调查的东西?这是否可以通过捕获更多请求并保持它们直到函数应用程序可以接受和处理它们来增加我的明显吞吐量?
提前感谢您提供的任何帮助。