gpt4 book ai didi

azure - 缩放队列触发的 azure 函数的并行实例数

转载 作者:行者123 更新时间:2023-12-03 16:25:43 25 4
gpt4 key购买 nike

我正在尝试更好地了解 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
}

如果您能在此处提供有关扩展功能的信息或实现更好吞吐量的建议,我们将不胜感激。

最佳答案

首先,我们可以通过设置 host.json 中的 batchSize 来指定并行检索和处理的队列消息数(每个作业函数)。 。如果您只想检索和处理单个队列消息(就像您所做的那样),您可以将 batchSize 设置为 1。

此外,当我们使用消耗计划时,Azure Functions 主机的实例会根据传入事件的数量动态添加和删除。在扩展过程中,一些队列消息已被处理并从队列中删除,因此它不会扩展到 1000 个实例。请引用Azure Functions Consumption and how it works获取详细信息。

关于azure - 缩放队列触发的 azure 函数的并行实例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45991122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com