我有一个在 Azure 应用服务计划上运行的应用程序,该计划由两个简单的部分组成:
托管在插槽上的前端。 托管在插槽上的后端。 前端通过 HTTP 与后端通信,后端的端点被硬编码在前端的配置中。
我想扩展此应用程序,但我不确定实现此目的的最佳方法。
我一直在阅读有关 Azure 应用服务计划横向扩展选项的信息,但我不确定它是否适合我当前的设置。据我了解:
我可以创建一个横向扩展规则,当应用服务计划的 CPU 达到特定阈值(例如 XX%)时触发。 一旦达到阈值,Azure 将启动应用服务计划的另一个实例。 现在,假设用户导航到 mycustomdomainname.com。幕后发生了什么? 我当前的配置涉及一个具有一个前端和一个后端的应用服务计划,并且前端具有与其关联的自定义域名。我的问题如下:
我也愿意接受其他建议 关于架构。我是否应该考虑创建一个专门的 Azure 中的负载均衡器用于处理来自以下位置的请求的分发 前端到后端?如果是这样,应用程序服务计划是否正确 方式?
提前感谢您的帮助!
新启动的应用服务计划实例如何知道要使用哪个域名?
自动缩放对域名一无所知。 它监视您的应用程序服务计划的统计信息,您可以将其视为服务器集群。 该集群中的每个虚拟机都运行同一计划中的所有应用程序。 如果达到缩放规则条件,自动缩放器将根据该条件在集群中添加/删除虚拟机。 如果添加虚拟机,计划中的所有应用程序都将设置为在其上运行。
考虑到我不需要多个前端实例,我是否需要从原始应用服务计划中删除前端以避免重复前端?
如果扩展要求不同,制定单独的计划可能是个好主意。 自动缩放以相同的方式影响一个计划中的所有应用程序。
我可以指定应在应用服务计划中扩展哪些应用程序吗? (据我了解,应用服务计划中的所有应用程序都会一起横向扩展。)
不。 所有应用程序都在每个虚拟机上运行。
新实例启动并运行后,Azure 如何引导连接的用户从前端联系正确的后端 API(A 或 B)?此外,如何配置我的前端以使用在多个后端实例上实现负载平衡的通用 API URL?
这已经为您完成了。 应用服务在所有虚拟机前面包含一个负载均衡器。 这是您在连接到 URL 时所连接的内容。 自动缩放器会让负载均衡器知道虚拟机的更改,因此当添加虚拟机时,未来的请求可能会路由到那里。
小旁注:如果您在应用服务配置中启用了“ARR 关联性”,则会在第一个响应中发送一个 cookie,该 cookie 将虚拟机设置为在同一客户端发出的后续请求时连接到。 不建议启用此功能,除非您要迁移依赖于内存中会话数据的旧应用程序。 检查是否已禁用此功能,以确保请求在实例之间均匀路由。