从负载平衡中排除Azure AppService实例

时间:2020-03-06 04:01:30

标签: azure azure-web-app-service

是否可以从负载均衡器中排除AppService实例:

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

通过SDK将是理想的选择,那么一旦所有初始化完成,我们就可以设置MakeVisibleToLoadBalance标志(如果存在)。

如果只能通过门户网站使用它,则最好在实例加载后的n秒钟内将其设置为对负载均衡器可见。

原因: 当我们重新启动实例(例如通过高级重新启动)时,指标每次都会显示出明显的响应时间增加。 我认为原因是负载均衡器认为该计算机可用,但实际上尚未完成初始化,因此负载均衡器发送到该实例的请求被大大延迟了。

另一个原因是我们可能会观察到一个实例的性能很差,如果我们可以在恢复或重新启动该实例之前将其排除在外,那就太好了。

2 个答案:

答案 0 :(得分:1)

//根据“注释”中与wallismark的讨论。复制了有助于回答的有用评论。

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

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

答案 1 :(得分:0)

如果您的要求适合,则可以利用ARR affinit y;在多实例部署中,请确保在会话有效期内将客户端路由到同一实例。您可以将无状态应用程序的此选项设置为“关”。

通常,向外扩展(触发)-WebApp的多个运行副本,并处理在所有实例之间分配传入请求所需的负载平衡配置。当您有多个实例时,对WebApp的请求可以使用负载均衡器转到其中的任意一个,负载均衡器将根据当时每个实例的繁忙程度来决定将哪个实例路由请求。

要共享有关此功能的更多信息-在负载平衡器上,一旦您的浏览器向站点发出了请求,它将向其中添加一个ARRAffinity cookie(带有响应),其中包含特定的实例ID来自该浏览器的下一个请求转到相同的实例。您可以使用此功能将请求发送到我们网站的特定实例。您可以在App Service的“应用程序设置”中找到该设置: 在同一App Service计划中运行多个应用程序时,每个扩展实例都将运行该计划中的所有应用程序。