首页 > 解决方案 > 从负载平衡中排除 Azure AppService 实例

问题描述

有没有办法从负载均衡器中排除 AppService 实例:

  1. 通过门户?
  2. 通过 SDK?

通过 SDK 是理想的,然后我们可以在所有初始化完成后设置 MakeVisibleToLoadBalance 标志(如果存在这样的东西)。

如果它只能通过门户获得,最好在实例加载后 n 秒内设置它对负载均衡器可见。

原因: 当我们重新启动一个实例(例如通过高级重新启动)时,指标每次都显示响应时间显着增加。我相信原因是负载均衡器认为机器可用但它确实没有完成初始化,因此负载均衡器发送到该实例的请求被显着延迟。

另一个原因是我们可能会观察到一个实例表现不佳,如果我们可以排除该实例直到它恢复或重新启动,那就太好了。

标签: azureazure-web-app-service

解决方案


//根据“评论”中与wallismark的讨论。复制有用的评论以回答。

要解决您上面提到的“原因”/场景,您可以利用 ApplicationInitialization 方法。每次您的应用程序启动时,这可能是因为新的工作人员上线(水平扩展),甚至只是由新部署、配置更改等引起的冷启动。 ApplicationInitialization 将在接受请求之前执行以预热站点那个工人。

因此,应用程序初始化模块,方便的功能允许您在应用程序接收请求之前预热您的应用程序,以帮助避免应用程序重新启动时冷启动或缓慢的初始加载时间。请结帐 - https://ruslany.net/2015/09/how-to-warm-up-azure-web-app-during-deployment-slots-swap/ - 它也已在所有其他操作中实施预配了新的工作人员(例如自动缩放、手动缩放或 Azure 结构维护)。但是,您不能从负载均衡器中排除该实例。


推荐阅读