azure - Azure Service Plan 如何对不同应用的流量进行负载平衡
问题描述
我试图更好地了解 Azure 应用服务计划 (ASP) 在部署多个/不同应用服务时如何对流量进行负载平衡。假设我的 ASP 由 2 个节点(VM 或实例)组成,我部署了 2 个应用程序(总共运行 4 个应用程序实例)并使用以下 URL:
https://app1.azurewebsites.net
https://app2.azurewebsites.net
我知道有 ASP 前端充当负载平衡器。因此,如果我理解正确,就像我有一个托管不同网站的网络服务器并且地址区分基于虚拟主机名(即上面的 URL)。对?
解决方案
应用服务是一项多租户服务,因此它使用请求中的主机标头将请求路由到正确的终结点。应用服务的默认域名 *.azurewebsites.net(例如 contoso.azurewebsites.net)与应用程序网关的域名(例如 contoso.com)不同。参考文献1
使用应用服务时,您可以通过扩展它们运行的应用服务计划来扩展应用。当多个应用在同一个应用服务计划中运行时,每个横向扩展的实例都会运行计划中的所有应用。
使用尽力而为的方法将应用程序分配到可用的应用程序服务计划,以便跨实例均匀分布。虽然不能保证均匀分布,但该平台将确保同一应用的两个实例不会托管在同一应用服务计划实例上。
该平台不依赖指标来决定工人分配。仅当从应用服务计划中添加或删除实例时才会重新平衡应用程序。
您现在还可以执行按应用缩放,可以在应用服务计划级别启用,以允许独立于托管应用服务计划的应用进行缩放。这样,一个应用服务计划可以扩展到 10 个实例,但一个应用可以设置为仅使用五个。参考文献2
推荐阅读
- snowflake-cloud-data-platform - 建立自定义 SAML IDP
- javascript - React 重新渲染导致的性能问题
- css - Bootstrap 5 h-100 适用于 Chrome,Safari 无法获取图像组
- java - 如何调试 JSON 错误(发生在 Wordpress 后端)?
- amazon-web-services - AWS CDK Athena 数据源
- r - R中的嵌套for循环没有产生正确的迭代次数
- spring - 如何在 Spring Cloud Sleuth 中为命令行运行程序设置行李字段?
- python - 如何在 Python 中的不同行中显示多个结果?
- reactjs - 使用 useContext 重新加载页面会丢失 API 数据
- python - 列表弹出和插入在python中非常慢