azure - Azure Function App 如何针对数百万并发用户请求进行扩展

标签 azure azure-functions azure-app-service-plans

我试图了解 Azure 函数在消耗计划或应用服务计划中运行时如何扩展流量突发。它说here即可以拥有无​​限量的 Web、移动、API 应用程序上的应用程序服务计划。

想知道它是如何管理的?具体来说,如果我在其中一个应用程序服务计划中运行我的函数应用程序,它会在某些峰值负载条件下超时或无法访问吗?

由于只有一个 IP 地址分配给函数应用 URI,Azure 如何确保这种情况下(极端峰值负载情况)的水平缩放?

是否使用某种内部负载平衡器,然后创建一个新的临时虚拟机(以分散负载并)在负载条件下运行功能应用程序的实例(当一定数量的并发用户/连接尝试访问函数 URI)?

但即使在这种情况下,它不会耗尽通过内部负载均衡器进行负载均衡的虚拟机实例的内部 IP 吗?必须存在一个阈值点,当应用服务计划将耗尽内部 IP 池以分配 VM 进行横向扩展时。

考虑到这种情况,如何在不耗尽任何内部 IP 地址池的情况下在 Azure 应用服务计划上运行无限的 Web、移动、API 应用程序?

最佳答案

我认为这里的关键问题是扩展如何在应用服务计划上发挥作用。

Azure 数据中心由不同的规模单元组成,每个规模单元由数百台服务器(甚至 1000 台)组成。这就是应用服务带来的扩展能力。单个数据中心可能有多个缩放单元。

应用服务的内部架构包括 - 前端 - 七层负载均衡器 Web Worker - Web 服务器 文件服务器 - 存储应用程序内容

回答您的以下问题 -

问:由于函数应用 URI 只分配了一个 IP 地址,Azure 如何确保这种情况下(极端峰值负载情况)的水平缩放?

问。是否使用某种内部负载平衡器,然后创建一个新的临时虚拟机(以分散负载并)在负载条件下运行函数应用程序的实例(当一定数量的并发用户/连接尝试访问函数 URI 时) ?

答:它不会创建新的临时 VM,而是使用 Web Workers,Web Workers 是运行共享负载的预配置 VM。前端是一个服务器分层负载均衡器,负责在水平扩展时分配流量。

但即使在这种情况下,它不会耗尽通过内部负载均衡器进行负载均衡的虚拟机实例的内部 IP 吗?必须存在一个阈值点,当应用服务计划将耗尽内部 IP 池以分配 VM 进行横向扩展时。

归根结底,数据中心受到内部可用计算能力的限制。假设而言,如果数据中心耗尽了计算能力,在这种情况下您可能会开始遇到超时,因为我不知道应用程序会自动扩展到另一个区域的任何情况。

关于azure - Azure Function App 如何针对数百万并发用户请求进行扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53662168/

相关文章:

azure - Azure Function IWebJobsStartup 实现中的 ExecutionContext

azure - 在 Azure Function 中找不到注释 System.ComponentModel.Annotations

azure - Terraform for Azure 应用服务计划中的数据与资源

azure - Azure Function App V2 是否可以使用超过 1.5 Gb 的内存

azure - Azure 应用服务中的扩展如何进行?

powershell - 添加-AzureAccount : user_realm_discovery_failed: User realm discovery failed: Unable to connect to the remote

asp.net - 无法获取 Azure 应用服务中托管的 .NET 网站的临时目录

javascript - ADAL - 在 javascript 应用程序中调用 AuthenticationContext 时出错

azure - 如何确保我部署的azure功能正常工作?

azure - AppService VNET 集成失败,VNET 已被占用