Ale*_*ano 5 azure azureservicebus azure-functions
我正在开发一个在 Dynamics 365 CRM 中执行多项操作的 Azure Function。我不完全理解 Azure Functions 并发的工作原理。我有一个消费计划,我的 Azure 函数内部有一个由服务总线消息触发的函数。
当我第一次测试它时,服务总线收到大约 200 条消息,并且应用程序开始同时处理大量消息,向 Dynamics 365 发出大量无法处理的请求。因此,在 Azure 门户中,我设法将最大实例数设置为 1,但该函数仍然一次处理许多消息。对此设置限制的最佳方法是什么?在 host.json 中使用 maxConcurrentCalls?在 host.json 中使用 maxConcurrentSessions?在应用程序配置中使用 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT 吗?
另外,将 maxConcurrentCalls 设置为 10 和 1 个函数实例或将其设置为 5 和 2 个函数实例有什么区别?
小智 4
maxConcurrentCallshost.json是为 Azure Functions 服务总线触发器配置的属性。
默认情况下,Functions 的运行时会同时处理多个消息(默认值 - 16)。设置maxConcurrentCalls为 1 以设置运行时一次仅处理单个队列或主题消息。
另外,maxConcurrentCalls是最大数量。对每个缩放实例应启动的回调的并发调用数。
maxConcurrentSessions - 每个缩放实例同时处理的最大会话数。
此设置仅适用于一次接收一条消息的函数。
对于每个实例一次只需要处理一条消息的要求,您可以在host.json.
如果您的要求是对 Functions 的Singleton 支持以确保一次仅运行一个函数,那么您需要配置此项。
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
此设置没有默认限制,即指定最大数量。应用程序可以扩展到的实例数。
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT为 1maxConcurrentCalls为1。更多信息参考资料很少:
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT和batchSize - 如何获得所需的并发性maxConcurrentCalls完全被忽略host.jsonAzure Function Service Bus Trigger 中设置的官方文档解释了以下内容maxConcurrentCalls:maxConcurrentSessionsWEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT| 归档时间: |
|
| 查看次数: |
6259 次 |
| 最近记录: |