.net – 如何在处理流量之前确保新的自动调整的Azure App Servic
在应用服务上启用自动缩放后,Azure将根据设置规则根据需要添加实例.我总是从至少2个实例开始.在应用程序代码完全初始化之前,我想确保流量不会定向到新的应用服务实例.我怎样才能做到这一点?是否可以添加超时?或者是以某种方式自动完成的?
解决方法
如果您使用水平扩展(也称为扩展和扩展),azure将保持您的应用程序在配置新资源时不间断地继续运行. Azure将自动预热新实例的应用程序并添加负载平衡以自动在它们之间分发请求.您无需单独单独配置负载平衡. 关于azure auto scale如何工作的更多细节,你可以参考这个article和这个article.
在Web应用程序扩展到2实例后,如果新请求被发送到默认实例网站,azure将预热新实例的Web应用程序. 您可以编写如下测试: 在web.config的webserver标记中添加以下配置代码以跟踪所有请求: <tracing> <traceFailedRequests> <clear/> <add path="*"> <traceAreas> <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,iisnode" verbosity="Verbose" /> </traceAreas> <failureDefinitions statusCodes="200-600" /> </add> </traceFailedRequests> </tracing> 然后,如果您的网站在访问网络应用程序后扩展到2个实例.由于实例的进程未启动,因此负载平衡不会将请求重定向到第二个实例. Azure将自动预热第二个实例的Web应用程序. 你可以找到如下图所示的日志: 日志结果: fr00030.xml(你可以找到进程是5860旧实例): fr00031.xml(您可以找到该进程是8164新实例,需要4015毫秒) 此外,正如Byron Tardif所说,如果你想启用自定义预热(预热所有页面),你可以使用Application Initialization Module. 它也会在新请求访问您的第二个Web应用程序实例之前调用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |