azure - Azure 负载平衡是否了解服务器 http 队列

标签 azure azure-web-app-service load-balancing

我有一些非常沉重的报告。当给定实例开始处理它时,它很容易会 100% 消耗我的实例拥有的两个核心之一...如果该实例获得其中 2 个,肯定会导致该实例无法处理任何其他请求大约1分钟...

我确实有其他实例正在运行(通常是 4-6 个)。负载均衡器是否会发现实例 A 已堵塞,并且在处于此负载下时不应向其发送请求?或者不,负载均衡器均匀分配请求?

最佳答案

Azure 负载均衡器是基于 TCP 和 UDP 流的负载均衡器,不处理应用程序层流量。负载平衡决策是根据新流做出的。负载均衡器使用哈希函数来确定新流的分配。分布模式决定了计算哈希值时要考虑的因素。

应用程序客户端的握手直接与虚拟机进行。负载均衡器无法识别您的 HTTP 请求,也不会对其进行排队。您需要查看应用程序层负载均衡器来进行此类处理,例如 Azure 应用程序网关。我不清楚这是否能解决您的情况;根本问题似乎是您不希望在实例繁忙时流量到达。

也就是说,您可以使用探测状态作为向负载均衡器发出信号的方式,表明您不希望接收更多流量。您可以使用 HTTP 探测配置,并让应用程序通过使用 HTTP 200 以外的其他内容进行响应来发出探测失败信号,负载均衡器将停止向其发送新流。负载平衡到该实例的现有流不会终止并将继续。您无法使用探针来发现虚拟机的负载;负载均衡器无法查看您的虚拟机的负载。

关于azure - Azure 负载平衡是否了解服务器 http 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46002339/

相关文章:

java - 某些 Google App Engine 实例中的负载而其他实例中的负载非常小。为什么?

security - SSRS 2008 R2,场 - 负载平衡和 HTTP 状态 401 : Unauthorized

azure - 如何使用 ASP.Net (C#) 在 Azure Active Directory 中创建组/用户?

node.js - Azure机器人框架: Show welcome message

azure - 是否可以使用 DotTrace 远程分析 Azure 网站?

azure - 强制 Azure Web 应用程序的生产槽始终处于打开状态

azure-web-app-service - 无法从 Azure 容器注册表将特定镜像部署到应用服务

user-interface - Nginx 平衡器管理器 gui

azure - 保留公共(public)虚拟IP地址?

python - 在 Azure 上使用 OpenCV 部署 Python Flask 应用程序的最佳方式