首页 > 解决方案 > 天蓝色负载均衡器,它如何知道负载均衡虚拟机中的应用程序是否关闭?

问题描述

Azure 负载均衡器如何知道部署在负载均衡 VM 中的应用程序(spring MVC 应用程序)是否关闭?是通过 ping url 吗?VM 可能已启动,但应用程序可能已关闭。您是否必须对应用程序进行任何更改 - 实现回显服务?如果说我们定义端口 80、TCP,那么“Health Probes”会有什么好处 - 可以,但应用程序不能。


我已经阅读了这篇文章,但仍然无法解决这个问题:https ://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-延期

标签: azureazure-load-balancer

解决方案


Azure 负载均衡器提供了与负载均衡规则一起使用的运行状况探测。运行状况探测能否支持协议取决于负载均衡器 SKU。 在此处输入图像描述

对于TCP probe,它通过使用定义的端口执行三向开放 TCP 握手来启动连接。TCP 探测通过四次关闭 TCP 握手来终止连接。

对于HTTP / HTTPS 探测,它建立在 TCP 探测之上,并发出带有指定路径的HTTP GET 。这两个探测器都支持 HTTP GET 的相对路径。当实例在超时期限内响应 HTTP状态 200时,会标记运行状况探测。默认情况下,健康探测每 15 秒尝试检查一次配置的健康探测端口。最小探测间隔为 5 秒。所有间隔的总持续时间不能超过 120 秒。

TCP、HTTP 和 HTTPS 健康探测被认为是健康的,并且在以下情况下将角色实例标记为健康:

  • VM 启动后运行状况探测成功一次。
  • 已达到将角色实例标记为健康所需的指定探测次数。

探测行为取决于:

  • 允许将实例标记为启动的成功探测数。
  • 导致实例被标记为关闭的失败探测数。
  • 指定的超时和间隔值确定实例是标记为启动还是关闭。

运行状况探测流量直接位于生成运行状况探测的探测服务与客户 VM 之间。所有负载均衡器运行状况探测均源自 IP 地址168.63.129.16作为其探测源 IP 地址

总的来说,您可以参考设计指南在您的场景中设计您的健康探测器,应用程序端口和探测器端口不需要相同。在某些情况下,可能需要探测端口与您的应用程序提供服务的端口不同。在您的情况下,我认为如果您有一个 TCP 端口 3389 或 SSH 22 到您的后端 VM 探测成功,那么 HTTP 探测失败并使用端口 80,这可能是“VM 可能已启动,但应用程序可能已关闭。 "


推荐阅读