ARR 亲和性 Cookie 如何在 Azure 应用服务环境中实际执行应用程序请求路由和负载平衡

How the ARR Affinity Cookie actually does the Application Request Routing and Load Balancing in an Azure App service environment

我了解 ARR 亲和性 cookie 将客户端请求与特定服务器配对。如果它被启用,那么请求将始终只发送到绑定到 Affinity cookie 的服务器。 Azure Web 应用程序是一个无状态平台,这并不总是有用,因为它不利用 Azure 应用程序服务中的横向扩展功能。

我的问题是什么情况下我们应该和不应该启用 ARR 亲和性 cookie?

作为一个 PaaS 环境,我知道我们作为最终用户对平台没有太多控制权,但是当我尝试查看 Azure Application Insights 中的数据时,我可以看到生成了不同的云角色名称这些实例当前 运行。 只是想知道应用程序请求路由和负载平衡在应用服务环境的后端是如何发生的。

谢谢。

ARR 亲和性是遗留应用程序兼容性的一个很好的解决方案,因为它们在设计时可能没有考虑负载平衡。

而对于无状态应用程序,您可以将此选项设置为关闭。参见 doc

参考:ARR affinity in Azure App service


对于应用程序请求路由和负载平衡是如何发生的,这里有一个document about App service Architecture可能会帮助您理解。

The front end is a layer seven-load balancer, acting as a proxy, distributing incoming HTTP requests between different applications and their respective Workers. Currently, the App Service load-balancing algorithm is a simple round robin between a set of servers allocated for a given application.