我试图了解 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/