Arj*_*arg 5 azure azure-functions
我试图更好地了解 azure 函数缩放在消费计划下是如何工作的。
我一直在测试一个在存储队列中插入 1000 条消息的应用程序,这会触发一个用 C# 编写的 azure 函数。
该函数下载一个文件并对其执行一些处理。完成每个请求大约需要 20 秒。
在消费计划上运行该函数,我发现完全排空队列需要 10 分钟以上的时间。将每个函数实例配置为一次仅处理一个队列消息,我原本希望为 1000 条消息启动 1000 个实例,但情况似乎并非如此。
使用 App Insights 上的实时指标流,我从未见过运行实例的数量超过 30。
这种吞吐量是预期的吗?作为参考,这是我在函数的 host.json 中的队列配置:
"queues": {
"maxPollingInterval": 2000,
"visibilityTimeout": "00:00:30",
"batchSize": 1,
"maxDequeueCount": 5,
"newBatchThreshold": 1
}
Run Code Online (Sandbox Code Playgroud)
任何可以提供有关缩放功能的信息,或在此处实现更好吞吐量的建议,都将不胜感激。
首先,我们可以通过在host.jsonbatchSize中设置来指定要并行检索和处理的队列消息数(每个作业函数)。如果像您一样只希望检索和处理单个队列消息,则可以设置为 1。batchSize
此外,当我们使用消耗计划时,Azure Functions 主机的实例会根据传入事件的数量动态添加和删除。在扩展过程中,一些队列消息已被处理并从队列中删除,因此它不会扩展到 1000 个实例。请参阅Azure Functions 消耗及其工作原理以获取详细信息。
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |