azure 负载均衡器,它如何知道负载均衡 VM 中的应用程序是否已关闭?

azure load balancer, how it gets to know if an application in a load balanced VM is down?

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


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

Azure 负载均衡器提供与负载均衡规则一起使用的运行状况探测。运行状况探测可能支持的协议取决于负载均衡器 SKU。

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

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

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

  • The health probe is successful once after the VM boots.
  • The specified number of probes required to mark the role instance as healthy has been achieved.

探测行为取决于:

  • The number of successful probes that allow an instance to be marked as up.
  • The number of failed probes that cause an instance to be marked as down.
  • The timeout and interval values specified determine whether an instance is marked as up or down.

运行状况探测流量直接在生成运行状况探测的探测服务与客户 VM 之间。所有负载均衡器运行状况探测都源自 IP 地址 168.63.129.16 作为它们的 probe source IP address.

总的来说,您可以参考design guidance来设计您场景中的健康探测,应用程序端口和探测端口不需要相同。在某些情况下,可能希望探测端口与您的应用程序提供服务的端口不同。在你的情况下,我想如果你有一个 TCP 端口 3389 或 SSH 22 到你的后端 VM 探测成功,然后 HTTP 探测失败端口 80,它可能是场景 "The VM may be up, but the application may be down."