azure - Azure Functions 如何横向扩展?

标签 azure azure-functions webhooks

scaling documentation for Azure Functions详细介绍了 Azure Functions 如何决定何时添加应用程序的更多实例。

例如,我有一个由 Github webhook 触发的函数。 10,000 人同时提交到 Github 存储库(没有合并冲突;)),Github 在很短的时间内调用我的函数 10,000 次。

我预计会发生什么?具体来说,

  1. Azure Functions 会限制 Webhook 调用吗?即,如果我的函数应用处于高负载状态,Azure Functions 是否会拒绝某些函数调用?
  2. Azure Functions 是否以某种方式对请求进行排队?如果是这样,在哪里/如何?
  3. 在此场景中,Azure Functions 将创建多少个函数应用实例?每个请求一个(即 10,000 个),并且每个请求将并行运行?
  4. 如果我的应用程序函数缩小到零实例,因为它没有负载,我是否可以期望在执行第一个函数之前看到一些“预热时间”?大约需要多长时间?

最佳答案

  1. Azure Functions 不会拒绝 Webhook 调用,但在突然出现极端负载的情况下,某些请求可能会超时。对于 Web API,请包括在客户端上重试,作为最佳实践。
  2. 它们不会在任何固定位置排队。它们(实现细节)由 IIS 管理。
  3. (实现细节)实例数量并不是一个硬性规定。我们制定了某些未发布的保护措施,但我们的设计目的是扩展相当大的范围。您的请求将由多个实例处理。
  4. 是的。目前,它相当大(秒),但我们将努力改进它。对于性能敏感的情况,建议使用金丝雀或定时器触发器来保持唤醒状态。

我来自 Azure Functions 团队。我标记为实现细节的内容并不是 promise ,并且随着我们服务的发展也可能会发生变化;只是尝试提高透明度。

关于azure - Azure Functions 如何横向扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37311598/

相关文章:

SendGrid 传入邮件 Webhook - 如何保护我的端点

Azure 机器学习工作室表示交叉验证模块的值为 "Value Required"

c# - 如何使用 Web 应用程序/WebAPI 验证 Azure AD 中的用户凭据

当 SQL 数据库添加新行而不轮询时,C# Azure Function 触发器

azure - Oauth 身份验证 token 在 powershell 中失败,但在 Postman 中失败

asp.net-mvc - 如何在 ASP.Net MVC 中初始化 Webhook 接收器

c# - 对 .Net 6 隔离工作线程 ServiceBusTriggers 的消息执行 MessageActions

sql-server - 将数据库附加到 Azure data studio

Azure 数据工厂管道 - 将单值源查询输出存储为变量,然后在复制数据事件中使用

github - 是否可以将 webhooks 添加到要点?