【问题标题】:How the ARR Affinity Cookie actually does the Application Request Routing and Load Balancing in an Azure App service environmentARR Affinity Cookie 如何在 Azure 应用服务环境中实际执行应用程序请求路由和负载平衡
【发布时间】:2026-01-04 03:15:03
【问题描述】:

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

我的问题是哪些场景,我们应该在哪些地方启用 ARR 亲和性 cookie,哪些地方不应该启用?

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

谢谢。

【问题讨论】:

    标签: azure-web-app-service azure-application-insights arr azure-app-service-envrmnt azure-appservice


    【解决方案1】:

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

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

    参考:ARR affinity in Azure App service


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

    前端是一个七层负载均衡器,充当代理, 在不同的应用程序之间分配传入的 HTTP 请求和 他们各自的工人。目前,应用服务负载均衡 算法是一组分配的服务器之间的简单循环 对于给定的应用程序。

    【讨论】: