首页 > 解决方案 > 如何将 azure 函数扩展到高吞吐量短期事件网格事件

问题描述

当向主题发布大量事件时(重试和生存时间以分钟为单位),许多事件无法传递给订阅的函数。有谁知道任何设置或方法来确保缩放反应迅速而不会全部丢弃?

我正在创建一个 Azure Function 应用程序,该应用程序本质上以高速率将事件传递给事件网格主题,订阅主题的其他函数将处理这些事件。这些事件是短暂的,并且不会持续超过指定的分钟数。理想情况下,我希望看到应用程序在不丢弃事件的情况下处理负载。总体目标是每个事件都会触发对我自己的 api 的出站 api 端点调用以测试性能/负载。

我已经查看了 MSDN 和其他位置的文档,但不太适合我的场景(大多数谈论传入事件而不是出站 http 事件)。

对于缩放,我查看了 http 的 host.json 设置(因为没有网格事件,并且网格事件看起来类似于 http 触发器)并且设置这些似乎已经取得了一些改进

我期望的最终结果是,每次发布到主题端点时,它都会被传递到一个函数并以低失败传递/丢弃率执行。

我所看到的是,当将许多事件发布到一个主题(并且以一致的速率)时,大多数事件都会死信/丢弃

标签: functionazureazure-functionsazure-eventgrid

解决方案


消费计划受到分配给您的功能的计算能力的限制。从本质上讲,它可以扩展一些限制,然后它就变成了瓶颈。

我建议看看限制

在这里,您可以了解一些关于计算能力差异的见解。

如果你想启用自动扩展,或者扩展 vm 实例的数量,我建议使用应用服务计划。支持扩展的最便宜的选项是标准定价层。


推荐阅读