Azure 应用服务计划中用于前端和后端通信的负载平衡设置

问题描述 投票:0回答:1

我有一个在 Azure 应用服务计划上运行的应用程序,该计划由两个简单的部分组成:

托管在插槽上的前端。 托管在插槽上的后端。 前端通过 HTTP 与后端通信,后端的端点被硬编码在前端的配置中。

我想扩展此应用程序,但我不确定实现此目的的最佳方法。

我一直在阅读有关 Azure 应用服务计划横向扩展选项的信息,但我不确定它是否适合我当前的设置。据我了解:

我可以创建一个横向扩展规则,当应用服务计划的 CPU 达到特定阈值(例如 XX%)时触发。 一旦达到阈值,Azure 将启动应用服务计划的另一个实例。 现在,假设用户导航到 mycustomdomainname.com。幕后发生了什么? 我当前的配置涉及一个具有一个前端和一个后端的应用服务计划,并且前端具有与其关联的自定义域名。我的问题如下:

  • 新启动的App Service Plan实例如何知道哪个 使用的域名?
  • 我需要从系统中删除前端吗? 原始应用程序服务计划以避免重复前端, 考虑到我不需要多个前端实例?
  • 我可以指定吗 应在应用服务计划中扩展哪些应用程序? (据我了解,应用程序服务计划内的所有应用程序 一起横向扩展。)
  • 新实例启动并运行后, Azure 如何引导连接的用户联系正确的后端 来自前端的 API(A 或 B)?另外,我该如何配置我的 前端使用通用 API URL,该 URL 在 多个后端实例?

我也愿意接受其他建议 关于架构。我是否应该考虑创建一个专门的 Azure 中的负载均衡器用于处理来自以下位置的请求的分发 前端到后端?如果是这样,应用程序服务计划是否正确 方式?

提前感谢您的帮助!

azure load-balancing azure-app-service-plans
1个回答
0
投票

新启动的应用服务计划实例如何知道要使用哪个域名?

自动缩放对域名一无所知。 它监视您的应用程序服务计划的统计信息,您可以将其视为服务器集群。 该集群中的每个虚拟机都运行同一计划中的所有应用程序。 如果达到缩放规则条件,自动缩放器将根据该条件在集群中添加/删除虚拟机。 如果添加虚拟机,计划中的所有应用程序都将设置为在其上运行。

考虑到我不需要多个前端实例,我是否需要从原始应用服务计划中删除前端以避免重复前端?

如果扩展要求不同,制定单独的计划可能是个好主意。 自动缩放以相同的方式影响一个计划中的所有应用程序。

我可以指定应在应用服务计划中扩展哪些应用程序吗? (据我了解,应用服务计划中的所有应用程序都会一起横向扩展。)

不。 所有应用程序都在每个虚拟机上运行。

新实例启动并运行后,Azure 如何引导连接的用户从前端联系正确的后端 API(A 或 B)?此外,如何配置我的前端以使用在多个后端实例上实现负载平衡的通用 API URL?

这已经为您完成了。 应用服务在所有虚拟机前面包含一个负载均衡器。 这是您在连接到 URL 时所连接的内容。 自动缩放器会让负载均衡器知道虚拟机的更改,因此当添加虚拟机时,未来的请求可能会路由到那里。

小旁注:如果您在应用服务配置中启用了“ARR 关联性”,则会在第一个响应中发送一个 cookie,该 cookie 将虚拟机设置为在同一客户端发出的后续请求时连接到。 不建议启用此功能,除非您要迁移依赖于内存中会话数据的旧应用程序。 检查是否已禁用此功能,以确保请求在实例之间均匀路由。

© www.soinside.com 2019 - 2024. All rights reserved.