首页 > 解决方案 > Azure Function App 如何针对数百万并发用户请求进行扩展

问题描述

我试图了解 Azure 功能在消费计划或应用服务计划中运行时如何扩展流量突发。它在这里说,一个人可以拥有无​​限的 Web、Mobile、API App on App 服务计划。

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

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

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

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

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

标签: azureazure-functionsazure-app-service-plans

解决方案


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

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

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

要回答您的以下问题 -

Q.由于函数应用 URI 只分配了一个 IP 地址,Azure 如何确保在这种情况下(极端峰值负载条件)的水平扩展?

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

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

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

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


推荐阅读